1

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

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 中的所有项目。这应该发生在客户端,当用户提交时将被保存到数据库中。有什么办法处理这个吗?:)

4

1 回答 1

2

在 Gridview 中分页时保持复选框的状态

逻辑

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

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

于 2010-12-30T12:08:38.687 回答