JQuery Datatables 在所有可用页面上获取所有“选中”复选框
Posted
技术标签:
【中文标题】JQuery Datatables 在所有可用页面上获取所有“选中”复选框【英文标题】:JQuery Datatables Get all "checked" checkboxes over all available pages 【发布时间】:2020-11-23 14:39:25 【问题描述】:希望您能帮我找到解决我遇到的这个问题的方法。 重点是我有一个视图——带有数据表的 C# 和 JQuery——它绘制了一个包含数千行的数据表。 数据表是分页的,它的第一列有一个复选框 dom 对象,用户可以检查所有这些对象,一个或特定的。 当用户提交页面时,我只得到了用户访问的最后一页的选中项,而我需要的是数据表中所有可用页面的所有选中行。 有谁知道如何编写返回该代码的代码?
我已经拥有的代码是这个(只返回最后一页检查的行):
var rows_selected = $('input[type="checkbox"]:checked')
var index = 0;
rows_selected.each(function ()
console.log('ListadoActores[' + index + ']'),
$('<input>',
type: 'hidden',
value: $(this).attr('id').replace('chk', ''),
id: $(this).attr('id').replace('chk', ''),
name: 'ListadoActores[' + index + ']',
).appendTo('#GenFileForm');
index = index + 1;
);
$("#GenFileForm").submit();
希望你能帮我解决这个问题。 提前致谢。
【问题讨论】:
如果您正在使用数据表(尤其是使用“拆分”成页面的预渲染表),那么您需要使用数据表 API(既可以设置刻度值,也可以读取它们背部)。每次更改页面时,数据表都会完全破坏所有 html 并从其数据存储中重建它(它们不只是设置为display:none
)。因此,在使用数据表时,永远不要从 HTML 中读取数据。
我建议你使用这个插件来做复选框:datatables.net/extensions/select
【参考方案1】:
正如@freedomn-m 所说,您需要访问 Datatables API 才能获取所有数据。
在提交时,放置一些如下代码:
var table = $('#example').DataTable();
var rows = [];
table.rows().every( function ()
var d = this.data(); //this will get the data for the row.
rows.push(d);
);
//You can then POST the rows and work with them
【讨论】:
以上是关于JQuery Datatables 在所有可用页面上获取所有“选中”复选框的主要内容,如果未能解决你的问题,请参考以下文章
Google Web App中的jQuery DataTables“表中没有可用数据”
JQuery UI Sortable + DataTables显示所有行而不刷新当前页面