【问题标题】:Find all Check checkboxes in a asp.net GridView using Jquery使用 Jquery 在 asp.net GridView 中查找所有选中复选框
【发布时间】:2016-09-09 14:40:06
【问题描述】:

我需要遍历 GridView 中的所有行并找到该行中的所有复选框。 GridVew 有大约 16 页。

目前我正在使用这个脚本:

        function SelectAllCheckboxes(value) {
            $('#' + '<%=dgForms.ClientID%> tr' ).each(function () {
            $(this).find("td input[id*='chkCommon']:checkbox").prop('checked', value);
        });

这仅循环当前页面行。也就是说,如果我在第 5 页,则只会选中该页面上的复选框。

如何从所有 16 页中获取所有行?我想我需要从 DOM 中获取它,但不确定如何。

【问题讨论】:

  • 从 DOM 是不可能的,因为当您单击 gridview 分页的下一步然后它将数据绑定到网格意味着然后它生成 html 但您可以通过编码将所有值存储在表中然后使用 Lambda 查询你可以这样做。
  • 要从 DOM 执行此操作,您必须将所有行呈现给浏览器,这意味着禁用分页和重新绑定。你真正想要完成的是什么? XY Problem

标签: javascript c# jquery asp.net gridview


【解决方案1】:

Gridview 是一个 ASP.Net 控件。当您单击分页时,gridview 会启动回发以获取数据。 Jquery 是一个 JavaScript 框架。 Javascript 是一种在客户端浏览器上工作的语言。 如果要选中所有复选框控件,这些控件必须存在于浏览器中。

简而言之,问题不在于 jquery 代码,而在于使用的技术。

【讨论】:

    【解决方案2】:

    只有当前页面在 DOM 中。分页通过使用 AJAX(部分页面更新)一次将一页下载到浏览器来工作。您需要以编程方式逐步浏览这些页面。

    【讨论】:

    • 克林特:GridViews 不为分页实现 AJAX。
    【解决方案3】:

    您可以在此处重新创建数据源。过滤掉所有未选中的(这应该很容易)。接下来绑定仅包含选中行的新网格并显示相同。

    不是一个非常迷人的解决方案,但应该可以满足您的需求。

    【讨论】:

      猜你喜欢
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多