我有一个带有分页的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中的所有项目。这应该发生在客户端,当用户提交时将保存到数据库。有办法处理这个吗? :)
答案 0 :(得分:2)
Maintaining the State of Checkbox while Paging in Gridview
逻辑
将选中的行主键保存到PageIndexChanging事件的列表中
将网格设置为新的PageIndex并重新绑定网格后,使用列表中映射到网格中的行(如果有)的值填充新页面
因此,您将在列表中包含已检查行的集合
删除列表以清除所有内容。
这是一种方法。
PS:它是一个两年的帖子,所以你肯定可以使用C#4.0优化它