检索数据表中的指定行

Retrieving specified rows in Datatables

问题

有没有办法以编程方式仅检索符合某些特定条件的行 - 例如具有特定索引的行?

API 有一个方法 - rows(), which results can be manipulated a little by providing a selector-modifier 参数。但是,使用它我最多只能使用当前的 table 搜索,而不是自定义搜索。

问题

为了更好地理解,我将提供有关我正在努力实现的目标的更多详细信息。

我正在使用Select extension。我想使用外部触发器一次 select 一些行。现在我这样做:

myTable.rows().every(function () {
    // ...
    // Check if the row should be selected and if so:
    this.select();
    // ...
});

但是,这会导致在 table 上触发与 selected 行数相同数量的 select 事件。我有一个绑定到此事件的处理程序,它根据 selected 行向外部 API 执行请求。由于我无法辨别哪个 select 是最后一个,我的处理程序最终会因为事件的数量而不必要地向外部 API 发送垃圾邮件。

解决方案

  1. 只检索匹配的行并对它们使用 rows().select()

我认为这将是最好的解决方案,因为 select 事件只会被触发一次。但是,我不知道该怎么做 - 因此这个问题。

  1. 阻止处理程序调用外部 API,直到 selecting 进程完成。

我想到了两个我将作为最后手段使用的 hacky 解决方案:

我希望整个问题不会太混乱。明确一点 - 我想找到答案的是顶部的斜体问题。

selector-修饰符仅适用于 select 所有行。它不是用于通过 selector 限制行。为此,您可以使用 row-selector,它更加灵活:

https://datatables.net/reference/type/row-selector

该页面上有几个示例,因此我不会在此处详细介绍这些选项。

正如您所建议的那样,如果您使用此 selector 然后在返回的行集上调用 .select(),回调只会触发一次。