如何从DataTables过滤OUT值?

时间:2014-09-24 21:24:35

标签: jquery filter jquery-datatables

我想要查看没有该列值的所有数据,而不是在“搜索”框中键入值并仅查看具有该列值的数据。

因此,例如,如果列Fry Size具有:Small, Medium, Large, or Mega作为可能的值,并且我在搜索栏中输入Mega,我只想查看具有以下内容的数据: Small, Medium, or Large列中的Fry Size

有可能这样做吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:0)

是的,您可以执行此类自定义搜索,但存在一些陷阱:一般情况下,数据表会在自定义搜索之前应用自己的过滤,因此在您的情况下,添加自定义过滤会反映在空表中。因此,您可以通过使用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绑定到datatables draw event:

$('#reverseSearch').keyup(function () {
       table.draw();
});

JSFiddle