C# 取消选中带有分页的GridView中的复选框

C# 取消选中带有分页的GridView中的复选框,c#,asp.net,gridview,checkbox,gridviewrow,C#,Asp.net,Gridview,Checkbox,Gridviewrow,我有一个带分页的ASP.NETGridView。其中一列有一个复选框。在特定场景中,我希望取消选中选中的复选框 foreach (GridViewRow dr in gvMyGridView.Rows) { if (dr.RowType == DataControlRowType.DataRow) { if ((CheckBox)dr.FindControl("chkIsApplicable") != null) { ((C

我有一个带分页的ASP.NETGridView。其中一列有一个复选框。在特定场景中,我希望取消选中选中的复选框

foreach (GridViewRow dr in gvMyGridView.Rows)
{
    if (dr.RowType == DataControlRowType.DataRow)
    {
        if ((CheckBox)dr.FindControl("chkIsApplicable") != null)
        {
            ((CheckBox)dr.FindControl("chkIsApplicable")).Checked = false;
        }
    }
}  
但不幸的是,由于分页,只有当前显示在网格中的记录才能以这种方式访问。我希望它应用于GridView中的所有项。这应该发生在客户端,当用户提交时将保存到数据库。有什么办法处理这个问题吗?:)

逻辑

在PageIndexchange事件中将选中的行主键保存到列表中。
将网格设置为new PageIndex并重新绑定网格后,使用映射到网格中的行(如果有)的列表中的值填充新页面
因此,您将在列表中有一组选中的行。
删除列表以清除所有

这是一种方法。

PS:这是一篇两年前的文章,所以你肯定可以用C#4.0优化它,最终处理服务器端或客户端?我想你不能选中这些复选框,因为它们在你更改页面索引之前并不存在。我的建议是保留一个布尔值,当用户单击“全选”时将其设置为true,当单击“更新”按钮时,您可以检查该值并执行您的操作operation@Jani:在用户选择“提交”按钮之前,不会在服务器端进行任何更改。按下后,信息将被传递并保存/更新到数据库中。