检索数据表中的指定行
Retrieving specified rows in Datatables
问题
有没有办法以编程方式仅检索与某些特定条件匹配的行 - 例如具有特定索引的行?
API有一个方法 - rows()
,可以通过提供selector-modifier
参数来稍微操纵结果。但是,使用它,我最多可以使用当前的表搜索,而不是自定义的。
问题所在
为了更好地理解,我将提供有关我想要实现的目标的更多详细信息。
我正在使用选择扩展。我想使用外部触发器一次选择一些行。现在我这样做:
myTable.rows().every(function () {
// ...
// Check if the row should be selected and if so:
this.select();
// ...
});
但是,这会导致在表上触发与所选行数相同的select
事件数。我有一个绑定到此事件的处理程序,它根据所选行执行对外部 API 的请求。由于我无法辨别哪个select
是最后一个,因此由于事件数量众多,我的处理程序最终不必要地向外部 API 发送垃圾邮件。
解决 方案
- 仅检索匹配的行并对其使用
rows().select()
。
我认为这将是最好的解决方案,因为select
事件只会触发一次。但是,我不知道该怎么做 - 因此这个问题。
- 在选择过程完成之前,阻止处理程序调用外部 API。
我想出了两个黑客解决方案,我将作为最后的手段:
根本不使用 avent 处理程序,只需在
rows().every()
循环后调用 API - 我仍然必须使用处理程序来处理手动行选择,但这可能会。遍历行两次 - 第一次检查哪一行是最后要选择的行,然后禁用处理程序,执行实际选择行的第二个循环,并在选择最后一行之前启用处理程序
我希望整个问题不会太混乱。需要明确的是 - 我想找到答案的是顶部的斜体问题。
选择器修饰符仅适用于选择所有行的情况。它不是为了通过选择器限制行。为此,您将使用行选择器,它更加灵活:
https://datatables.net/reference/type/row-selector
该页面上有几个示例,因此我不会在此处介绍这些选项。
正如您所建议的那样,如果您使用此选择器,然后在返回的行集上调用 .select(),则回调将只触发一次。
- 用程序搜索JQuery数据表中的文本
- 具有rowGrouping的数据表无法隐藏列
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 将单击事件添加到数据表
- 使用带有参数的数据表sAjaxSource
- 对角度数据表中括号内的数字进行排序
- 动态构建一个数据表与scriplets
- jquery数据表的自定义ko绑定
- 检索数据表中的指定行
- 检索parse.com数据并在数据表中显示
- 将 AJAX 检索到的 JSON 推送到数据表中
- 编辑更新的数据源后,从 YUI 数据表中检索更新的数据源
- 更新现有数据时检索引导模式表单中的复选框字段的值时出现问题
- 检索数据表对象原型
- 如何在点击复选框时检索现有的jquery数据表(在文档上初始化)
- 检索数据表单元格值以选择选项框
- 从不在当前分页数据表上的文本框中检索值
- 从HTML表检索数据到PHP
- 从jquery数据表的所有行中检索所有数据
- 在post上从jQuery数据表中检索所有单元格数据