我正在尝试为表格实现自定义过滤器:
基本上,当我单击一个按钮时,自定义过滤功能将测试所有行的列#1(数值)的值,如果列中的值为<一行50,行停留,否则行被隐藏。
这个概念应该非常简单,但我似乎无法找到使用API的正确方法:
可以达到效果的API是什么?
是否有以下内容?
var api = $('#table').DataTable();
api.column(1).data().somefilterfunction(function (val, ind) {
return parseFloat(val) < 50;
}).draw();
答案 0 :(得分:8)
您是否在文档中看过这篇文章 - &gt; https://datatables.net/examples/plug-ins/range_filtering.html ??
您可以通过按钮触发即时创建自定义过滤功能:
<button id="filter">filter < 50</button>
脚本:
$("#filter").click(function() {
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
return parseFloat(data[0])<50
? true
: false
}
);
table.draw();
$.fn.dataTable.ext.search.pop();
});
演示 - &gt;的 http://jsfiddle.net/dpwgqs2o/ 强>
请注意,过滤器是在点击处理程序本身内创建的,并且在绘制表格后立即再次删除。这使得过滤器是临时的,即当用户单击列标题时,过滤器被清除。如果您想要永久过滤器,请将过滤器设为全局过滤器,不要将其删除。