有没有办法以编程方式从过滤的(服务器端)数据表记录集中提取所有记录 ID?

Is there a way to programatically extract all record IDs from a filtered (server-side) datatables recordset?

在服务器端模式下使用数据tables,使用 YADCL 进行过滤,有什么方法可以通过编程方式提取记录 ID(例如 第 0 列包含整个过滤记录集(不仅仅是显示的分页结果)的那些 ID,这样我就可以对该记录集执行操作。

示例:'customers' 数据库 table 包含 80k 条记录,我使用 YADCF 过滤将其缩小到 1k 客户的记录集,其中 20 个显示在网页上。我想在页面上有一个标记为 'Mark all filtered records' 的按钮,当单击该按钮时,会触发一个 ajax 脚本,该脚本将已过滤的 1,000 条记录上的 'mark' 字段从 0 更改为 1。

我可以独立于数据table处理记录标记,但我不知道如何以编程方式计算出哪些记录需要标记,即我需要提取某种形式的记录集标识,我然后可以使用我的 SQL UPDATE 操作作为目标。有人有什么想法吗?

我遇到了类似的问题,这是我所做的:

  • 添加了一个隐藏的input-field
  • 使用 Datatables 的 drawCallback-option 触发一个函数,该函数将所有活动(过滤的)记录的 ID 写入 input-field
  • 关于服务器的回调,包括 input-field
  • 的内容

棘手的细节是 drawCallback-function:

function (settings) {                                                              
dtObj = this.api();                                                                
var dtData = dtObj.column(0,{ search: 'applied', selected: true }).data().toArray();   
$("#dtdata").val(JSON.stringify(dtData));                                          
}                                                                                  
  • 那个 column 调用的第一个参数是您感兴趣的列的索引(0 有我的索引)
  • 第二个参数选择匹配 search/filter-criteria 的所有行。他们还与 yadcf-filtering!
  • 合作