重置DataTables中的过滤数据

时间:2016-09-29 15:46:46

标签: javascript jquery datatables datatables-1.10

我有一个数据表,其中使用AJAX检索数据。然后我有两个过滤数据的搜索功能。使用未过滤的数据后,搜索功能可以正常工作。一旦应用了过滤器,我无法清除过滤器或应用另一个过滤器,因为两个过滤器是互斥的(一个过滤器是全部付费,另一个过滤器是全部未付款)。我认为我的问题是,一旦数据被过滤,然后我尝试清除或应用另一个过滤器,它将作用于数据的子集(已经过滤的数据)。如何在应用新过滤器之前清除重置过滤的数据,以及如何重置过滤器。我已经在这个网站上尝试了一些解决方案,但它们没有用。这是我的过滤功能。

function outstandingFees() {


$.fn.dataTable.ext.search.push(

    function (settings, data, dataIndex) {

        var zero = 0;
        var fee = parseFloat(data[8]) || 0; // use data for the balance due column

         if (fee > zero) {
            return true;
        }

        return false;

    }

);

table.draw();

}


function paidFees() {

$.fn.dataTable.ext.search.push(

    function (settings, data, dataIndex) {

        var zero = 0;

        var fee = parseFloat(data[8]); // use data for the balance due column


        if (fee === zero) {

            return true;

        }

        return false;

    }

);

table.draw();

}



function allFees() {

$.fn.dataTable.ext.search.push(

    function (settings, data, dataIndex) {

        var zero = 0;

        var fee = parseFloat(data[8]) || 0; // use data for the balance due column

        if (zero <= fee) {

            return true;

        }

        return false;

    }

);

table.draw();

}

1 个答案:

答案 0 :(得分:3)

如davidkonrad所说

$.fn.dataTable.ext.search.pop()

为我工作。我只是将它添加到每个方法的顶部,以便在应用新的过滤器之前清除过滤器。