【问题标题】:Datatables - filter applied to just some tables数据表 - 过滤器仅应用于某些表
【发布时间】:2016-04-11 23:00:32
【问题描述】:

在数据表中,有这个过滤功能

$.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex)

过滤所有表格。

我有两张表,我需要将过滤器应用于其中一张表。

如何让 Datatables 知道我只想过滤 table1 并保留 table2 原样?

【问题讨论】:

    标签: javascript jquery datatables


    【解决方案1】:

    从 DataTables 创建者那里查看这个 sn-p。

    https://www.datatables.net/forums/discussion/16623/using-fn-datatableext-afnfiltering-push-to-filter-tables

    $.fn.dataTableExt.afnFiltering.push(
        function(settings, aData, iDataIndex) {
            if (settings.nTable.id === 'myTableId') {
                // filter example
            } else {
                // ...
            }
        }
    );
    

    您可以检查要过滤的表的id。这不是官方解决方案,但它有效。

    【讨论】:

    【解决方案2】:

    我在其他地方找到了对我有帮助的答案:

    https://stackoverflow.com/a/11545376/4896102

    刚刚在函数中添加了这个

    //array with the tables IDs you want the filtering function to ignore
    var allowFilter = ['yourTableId1', 'youTableId2'];
    
    $.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex) 
    {
        // check if current table is part of the allow list
        if ($.inArray(oSettings.nTable.getAttribute('id'), allowFilter ) == -1 )
        {
           // if not table should be ignored
           return true;
        }
        //rest of the code
        return false;
    });
    

    这个对我有用,它的优点是你可以使用一个数组,所以你可以在过滤时忽略多个表。

    【讨论】:

      【解决方案3】:

      您可以使用 API 的 DataTables .search().draw() 方法。见online documentation

      var dt1 = $('#table1').DataTable();
      dt1.search('search text').draw();
      

      另见工作fiddle

      作为附录,我只想提一下,在 1.10+ 的 DataTables 中,有两种初始化表的方法:.dataTable().DataTable()。第二个返回新的 API,这就是我上面使用的。如果您使用第一个,您仍然可以使用 $( selector ).dataTable().api() 检索新 API,如 online documentation 中所述

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-09
        • 1970-01-01
        • 1970-01-01
        • 2021-03-01
        • 2022-11-09
        • 1970-01-01
        相关资源
        最近更新 更多