检索数据表中的指定行
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 发送垃圾邮件。
解决方案
- 只检索匹配的行并对它们使用
rows().select()
。
我认为这将是最好的解决方案,因为 select
事件只会被触发一次。但是,我不知道该怎么做 - 因此这个问题。
- 阻止处理程序调用外部 API,直到 selecting 进程完成。
我想到了两个我将作为最后手段使用的 hacky 解决方案:
根本不使用 avent 处理程序,只需在 rows().every()
循环之后调用 API - 我仍然必须使用处理程序来处理手动行 select离子,但那可能会做。
遍历行两次 - 第一次检查哪一行将是最后被 selected,然后禁用处理程序,进行第二次循环实际上 selects 行,并在 select 最后一行
之前启用处理程序
我希望整个问题不会太混乱。明确一点 - 我想找到答案的是顶部的斜体问题。
selector-修饰符仅适用于 select 所有行。它不是用于通过 selector 限制行。为此,您可以使用 row-selector,它更加灵活:
https://datatables.net/reference/type/row-selector
该页面上有几个示例,因此我不会在此处详细介绍这些选项。
正如您所建议的那样,如果您使用此 selector 然后在返回的行集上调用 .select(),回调只会触发一次。
问题
有没有办法以编程方式仅检索符合某些特定条件的行 - 例如具有特定索引的行?
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 发送垃圾邮件。
解决方案
- 只检索匹配的行并对它们使用
rows().select()
。
我认为这将是最好的解决方案,因为 select
事件只会被触发一次。但是,我不知道该怎么做 - 因此这个问题。
- 阻止处理程序调用外部 API,直到 selecting 进程完成。
我想到了两个我将作为最后手段使用的 hacky 解决方案:
根本不使用 avent 处理程序,只需在
rows().every()
循环之后调用 API - 我仍然必须使用处理程序来处理手动行 select离子,但那可能会做。遍历行两次 - 第一次检查哪一行将是最后被 selected,然后禁用处理程序,进行第二次循环实际上 selects 行,并在 select 最后一行
之前启用处理程序
我希望整个问题不会太混乱。明确一点 - 我想找到答案的是顶部的斜体问题。
selector-修饰符仅适用于 select 所有行。它不是用于通过 selector 限制行。为此,您可以使用 row-selector,它更加灵活:
https://datatables.net/reference/type/row-selector
该页面上有几个示例,因此我不会在此处详细介绍这些选项。
正如您所建议的那样,如果您使用此 selector 然后在返回的行集上调用 .select(),回调只会触发一次。