如何从 jQuery Datatable 中获取过滤后的数据结果集
Posted
技术标签:
【中文标题】如何从 jQuery Datatable 中获取过滤后的数据结果集【英文标题】:How to get filtered Data result set from jQuery Datatable 【发布时间】:2016-01-15 03:46:58 【问题描述】:如果有人在这个问题上帮助我,那就太好了。
我只是想从数据表中获取过滤后的结果集。
下面是我的代码。
var filtered_row_data = $('#example').DataTable().column(1).search('186').data().unique().sort();
console.log(JSON.stringify(filtered_row_data));
它只返回所有行而不是过滤值。
我正在使用最新的稳定版 Datatable。
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:请参阅数据表selector-modifiers。你正在寻找filter : 'applied'
:
table.on('search.dt', function()
//number of filtered rows
console.log(table.rows( filter : 'applied' ).nodes().length);
//filtered rows data as arrays
console.log(table.rows( filter : 'applied' ).data());
)
演示 -> http://jsfiddle.net/h4wrmfx3/
【讨论】:
它的工作,但是当我使用它两次!,奇怪的是,当我点击搜索按钮并控制台它时,它显示我 10 记录但是当我再次点击搜索时它显示我 3(这是正确的不) .你能帮忙解决这个问题吗? @Rohit,你能用小提琴重现这个吗?尝试了上面的答案,它似乎按预期工作。 根据你的建议这是我的小提琴jsfiddle.net/RohitSavaliya2010/sz7w5uvr/1你能检查一下吗? @Rohit,好吧,它不起作用,只是一些脱离上下文的代码 :) 你可以获取上面的 jsfiddle.net/h4wrmfx3 并添加/修改然后更新或分叉。 @Manza 按照链接到datatables.net/reference/type/selector-modifier(与答案相同)【参考方案2】:如果您正在使用服务器端过滤/搜索,这是我找到的唯一解决方案并且有效:xhr event
$('#yourTable').on('xhr.dt', function ( e, settings, json, xhr )
//the new data is here json.data
console.log(json.data);
);
【讨论】:
以上是关于如何从 jQuery Datatable 中获取过滤后的数据结果集的主要内容,如果未能解决你的问题,请参考以下文章
jquery datatable - 如何使用渲染函数从另一列获取数据
第 1 页后无法从 jquery DataTable 表行中获取属性值