使用 Jquery 在 asp.net GridView 中查找所有选中复选框
Posted
技术标签:
【中文标题】使用 Jquery 在 asp.net GridView 中查找所有选中复选框【英文标题】:Find all Check checkboxes in a asp.net GridView using Jquery 【发布时间】: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 【参考方案1】:Gridview 是一个 ASP.Net 控件。当您单击分页时,gridview 会启动回发以获取数据。 Jquery 是一个 javascript 框架。 Javascript 是一种在客户端浏览器上工作的语言。 如果要选中所有复选框控件,这些控件必须存在于浏览器中。
简而言之,问题不在于 jquery 代码,而在于使用的技术。
【讨论】:
【参考方案2】:只有当前页面在 DOM 中。分页通过使用 AJAX(部分页面更新)一次将一页下载到浏览器来工作。您需要以编程方式逐步浏览这些页面。
【讨论】:
克林特:GridViews 不为分页实现 AJAX。【参考方案3】:您可以在此处重新创建数据源。过滤掉所有未选中的(这应该很容易)。接下来绑定仅包含选中行的新网格并显示相同。
不是一个非常迷人的解决方案,但应该可以满足您的需求。
【讨论】:
以上是关于使用 Jquery 在 asp.net GridView 中查找所有选中复选框的主要内容,如果未能解决你的问题,请参考以下文章
asp.net的GridView控件的onrowdeleting属性怎么出错显示为找不到可接受类型。。。呢
使用 javascript/jquery 检测 Asp.Net 表单是不是有效