【问题标题】: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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-15
      • 2018-01-28
      • 2014-08-15
      • 2019-08-08
      • 2017-01-29
      • 1970-01-01
      • 2012-09-10
      • 2023-04-08
      相关资源
      最近更新 更多