GridView1里有一列是放一个<asp:CheckBox ID="cbChoose" runat="server" />
比如我在第一页选择一部份CheckBox后`点下一页~前一页后的~选择值状态不变

解决方案 »

  1.   

    你原来的数据存在一个datatable(viewstate)
    那得重新读取一次girdview数据
    覆盖原来的datatable值
    然后再把覆盖后的datatable赋值给gridview
      

  2.   

    将checkbox的选中行ID保存在viewState中在分页事件中重绑定checkbox的选 中状态
      

  3.   

    这个得重新赋值,遍历当前页的CheckBox,是否选中值放在一个数组里,点下一页后根据数组重新为CheckBox赋值。
      

  4.   

    for (int y = 0; y <= (this.gvPermission.Rows.Count - 1); y++)//gridview Rows
                {
                    string cntl = string.Empty;//权限标识 2不可编辑 1可编辑为选中的 0可编辑选中的
                    for (int i = 2; i <= (this.gvPermission.Columns.Count - 1); i++)//gridview Columns i=2从第三列开始
                    {
                        CheckBox chk = this.gvPermission.Rows[y].Cells[i].Controls[0] as CheckBox;
                        if (chk.Enabled)
                        {
                            if (chk.Checked)
                            {
                                cntl = cntl + "1";
                            }
                            else
                            {
                                cntl = cntl + "0";
                            }
                        }
                        else
                        {
                            cntl = cntl + "2";
                        }
                    }
                    this.dtClassPermission.Rows[y][3] = cntl;//修改dtClassPermission第几行下的第三行的值 没点击保存按钮数据库不会改变  即权限编码 //2不可编辑 1可编辑为选中的 0可编辑选中的
                }
    //////////////////////////////////////////////////////
     //所有权限
            protected DataTable dtPermission
            {
                get
                {
                    return ((this.ViewState["PermissionList"] == null) ? null : (this.ViewState["PermissionList"] as DataTable));
                }
                set
                {
                    this.ViewState["PermissionList"] = value;
                }
            }
      

  5.   

      在分页时间中不要忘了写gridview.当前页 = e.rowindex;