使用分页取消选中GridView中的复选框

时间:2010-12-30 11:55:21

标签: c# asp.net gridview checkbox gridviewrow

我有一个带有分页的ASP .NET GridView。其中一列有一个CheckBox。在某种情况下,我想取消选中已选中的复选框。

foreach (GridViewRow dr in gvMyGridView.Rows)
{
    if (dr.RowType == DataControlRowType.DataRow)
    {
        if ((CheckBox)dr.FindControl("chkIsApplicable") != null)
        {
            ((CheckBox)dr.FindControl("chkIsApplicable")).Checked = false;
        }
    }
}  

但遗憾的是,由于Paging只能以这种方式访问​​Grid中当前显示的记录。我希望它适用于GridView中的所有项目。这应该发生在客户端,当用户提交时将保存到数据库。有办法处理这个吗? :)

1 个答案:

答案 0 :(得分:2)

Maintaining the State of Checkbox while Paging in Gridview

逻辑

将选中的行主键保存到PageIndexChanging事件的列表中 将网格设置为新的PageIndex并重新绑定网格后,使用列表中映射到网格中的行(如果有)的值填充新页面
因此,您将在列表中包含已检查行的集合 删除列表以清除所有内容。

这是一种方法。
PS:它是一个两年的帖子,所以你肯定可以使用C#4.0优化它