通过函数过滤后,jQuery DataTable还原行



我有一个jquery datatable,并使用外部过滤器功能根据类

过滤一些行
$.fn.dataTable.ext.search.push(
    function(oSettings, data, dataIndex) {
        if (oSettings.nTable != document.getElementById( 'bt-datatable' ))   {
            return true
        }
        var rowNode = $(table.row(dataIndex).node());
        if (rowNode.hasClass('def-class') || rowNode.hasClass('abc-class')) {
            return rowNode;
        }
    }
);
table.draw();

现在,过滤器的工作正常,它根据Def-Class和ABC类过滤出来。但是我不能只收回此功能已经过滤的所有行。我想在点击事件上还原行。

这是我要做的事情的版本。我的一些标签等不同,因为我在现有代码上使用了它。我将按钮放在表格中。

    $(function () {
       // global variable for determining if the class should be filtered
        var filterClass = true;
        $.fn.dataTable.ext.search.push(
            function (oSettings, data, dataIndex) {
                if (oSettings.nTable != document.getElementById('tblTab2') || filterClass == false) {
                        return true
                }
                // I did it slightly different here but it does the same thing.
                var rowNode = $($(oSettings.nTable).DataTable().row(dataIndex).node());
               if (rowNode.hasClass('def-class') || rowNode.hasClass('myclass')) {
                    return rowNode;
                }
            }
        );

            $('#tblTab2').DataTable({
                dom: 'tB', buttons: [{
                    text: "Filter", action:
                        function (e, dt, node, config) { filterClass = !filterClass; dt.draw(); }
                }]
            });
});

最新更新