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

时间:2018-03-26 12:18:12

标签: datatables datatables-1.10 yadcf

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

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

我可以独立于数据表处理记录的标记,但我不知道如何以编程方式确定哪些记录需要标记,即我需要提取某种形式的记录集标识,然后我可以使用它来定位我的SQL UPDATE操作。任何人的想法?

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,这就是我所做的:

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

棘手的细节是drawCallback-function:

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