GridView跨页CheckBox选择

   public ArrayList SelectedItems
    {
        get
        {     return (ViewState["SelectedItems"] != null) ? (ArrayList)ViewState["SelectedItems"] : null;   }
        set
        {     ViewState["SelectedItems"] = value;    }
    }


    protected void gvList_DataBinding(object sender, EventArgs e)
    {
 //在每一次重新绑定之前,需要调用CollectSelected方法从当前页收集选中项的情况
        CollectSelected();
    }

 

     //从当前页收集选中项的情况   

     public void CollectSelected()
     {
        ArrayList selectedItems = null;
        if (SelectedItems == null)
            selectedItems = new ArrayList();
        else
            selectedItems = SelectedItems;

        for (int i = 0; i < gvList.Rows.Count; i++)
        {
            string recordid = gvList.DataKeys[i]["recordid"].ToString();
            CheckBox cb = (CheckBox)gvList.Rows[i].Cells[0].FindControl("cbcheck");

            if (selectedItems.Contains(recordid) && !cb.Checked)
                selectedItems.Remove(recordid);
            if (!selectedItems.Contains(recordid) && cb.Checked)
                selectedItems.Add(recordid);
        }

        SelectedItems = selectedItems;
     }


    protected void gvList_RowDataBound(object sender, GridViewRowEventArgs e)
    {
//这里的处理是为了回显之前选中的情况
        if (e.Row.RowIndex > -1 && SelectedItems != null)
        {
            CheckBox cb = (CheckBox)e.Row.Cells[0].FindControl("cbcheck");

            DataRowView drv = (DataRowView)e.Row.DataItem;

            if (SelectedItems.Contains(drv["recordid"].ToString()))
                cb.Checked = true;
            else
                cb.Checked = false;
        }
    }

 

    protected void ibtnok_Click(object sender, ImageClickEventArgs e)
    {
          CollectSelected();

          foreach(object obj in SelectedItems)

          {

               System.Windows.Forms.MessageBox.Show(obj.ToString());

          }

    }

 

转载于:https://www.cnblogs.com/pchgo/articles/1267008.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值