【问题标题】:Uncheck Checkboxes in GridView with Paging使用分页取消选中 GridView 中的复选框
【发布时间】:2011-06-01 12:49:31
【问题描述】:

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

【问题讨论】:

  • 最终处理那个服务器端还是客户端?
  • 我猜你不能选中这些复选框,因为在你更改页面索引之前它们并不真正存在。我的建议是保留一个布尔值并在用户单击全选时将其设置为 true,当单击更新按钮时,您可以检查该值并进行操作
  • @Jani:在用户选择“提交”按钮之前,服务器端不会进行任何更改。一旦按下它,信息就会被传递并保存/更新到数据库中。

标签: c# asp.net gridview checkbox gridviewrow


【解决方案1】:

Maintaining the State of Checkbox while Paging in Gridview

逻辑

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2017-12-06
    • 2019-09-09
    相关资源
    最近更新 更多