【问题标题】:How do I filter OUT a value from DataTables?如何从 DataTables 中过滤掉一个值?
【发布时间】:2014-09-24 21:24:35
【问题描述】:
我不想在“搜索”框中输入值并仅查看具有该列值的数据,而是希望查看不具有该列值的所有数据。
因此,例如,如果列 Fry Size 具有:Small, Medium, Large, or Mega 作为可能值,并且我在搜索栏中输入 Mega,我只想查看具有:Small, Medium, or Large 在 @ 987654325@专栏。
可以这样做吗?如果有,怎么做?
【问题讨论】:
标签:
jquery
filter
jquery-datatables
【解决方案1】:
是的,您可以执行此类自定义搜索,但存在一些缺陷:数据表通常会在自定义搜索之前应用自己的过滤,因此在您的情况下,添加自定义过滤会反映在空表中。因此,您可以通过使用sDom 来完全禁用源过滤机制:
'sDom': '<"top"l>rt<"bottom"ip><"clear">'
为您自己的过滤添加一些输入:
<input type="text" id="reverseSearch" />
然后应用自定义过滤:
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var frySize = data[1]; // from the fiddle example
var searchPhrase = $("#reverseSearch").val();
if (searchPhrase) {
return !(frySize.toLowerCase().indexOf(searchPhrase.toLowerCase()) > -1);
}
return true;
}
);
最后,将这个新的 serachbox 绑定到数据表 draw 事件:
$('#reverseSearch').keyup(function () {
table.draw();
});
JSFiddle