checkbox翻页后仍被选择问题

前段时间在做私人医生的后台管理,在做删除操作是要用到单个删除和批量删除。批量删除就涉及到本页选中的名单翻页后再回到本页仍被选中的问题。开始的时候 用的是DataGrid,里面加Textbox但是翻页后就不能继续被选中。于是自己做了一个,因为接触.net时间不长,不知道各位达人是怎么实现的
.aspx页中是一个服务器端的Table控件和几个上下翻页的LinkButton控件。

                第一页
                上一页
                下一页
                最后一页

               

.aspx.cs中主要是关于添加Checkbox选中问题的
if (ds.Tables[0].Rows.Count > 0)
        {
            //recordID = "";
            //strClicked = "";
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                TableRow tRow = new TableRow();
                tb.Controls.Add(tRow);

                TableCell tCellCheckBox = new TableCell();
                tRow.Controls.Add(tCellCheckBox);
                System.Web.UI.WebControls.CheckBox cb = new CheckBox();
                cb.Checked = false;
                cb.AutoPostBack = false;
                cb.Text = ds.Tables[0].Rows[i]["doctor_id"].ToString();
                if (strText.Contains(ds.Tables[0].Rows[i]["doctor_paper"].ToString()))
                {
                    cb.Checked = true;
                    recordID += ds.Tables[0].Rows[i]["doctor_paper"].ToString() + "|";
                }
                switch (i)
                {
                    case 0:
                        cb.CheckedChanged += new EventHandler(ChkBox0_Clicked);
                        break;
                    case 1:
                        cb.CheckedChanged += new EventHandler(ChkBox1_Clicked);
                        break;
                    case 2:
                        cb.CheckedChanged += new EventHandler(ChkBox2_Clicked);
                        break;
                    case 3:
                        cb.CheckedChanged += new EventHandler(ChkBox3_Clicked);
                        break;
                    case 4:
                        cb.CheckedChanged += new EventHandler(ChkBox4_Clicked);
                        break;
                    default:
                        break;
                }
                tCellCheckBox.Controls.Add(cb); ....
                ........
    }
这 里为每个Checkbox添加了一个CheckChanged事件,当状态改变时事件被触发.这里的strText是用于记录那个每页的哪个 CheckBox被选中的,记录的是checkbox相应行内容的ID号,如果被选中则checked=true,并且状态再次改变的话就把相应的ID从 strText中去掉。下面是ChkBox_Clicked的事件,其他的与此一样
private void ChkBox1_Clicked(object sender, EventArgs e)
    {
        string strNO = ReturnNo(1);
        ///
        Boolean ISCHECKED = false;
        if (strClicked.Contains("chkbox1") || strText.Contains(strNO))
        {
            string[] strArray = strClicked.Split('|');
            string s = "";
            for (int i = 0; i < strArray.Length - 1; i++)
            {
                if (strArray[i].Contains("chkbox1"))
                    s += "";
                else
                    s += strArray[i] + "|";
            }
            string[] strArrayID = strText.Split('|');
            string sss = "";
            for (int i = 0; i < strArrayID.Length - 1; i++)
            {
                if (strArrayID[i] == strNO)
                    sss += "";
                else
                    sss += strArrayID[i] + "|";
            }
            strClicked = s;
            strText = sss;
            ISCHECKED = false;
        }
        else
        {

            strClicked += "chkbox1|";
            strText += strNO + "|";
        }
    }
这样,当上下翻页的时候一被选中的记录依然被选中

转载于:https://www.cnblogs.com/ice5/archive/2006/10/24/538127.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值