Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重置数据表中的筛选数据_Javascript_Jquery_Datatables_Datatables 1.10 - Fatal编程技术网

Javascript 重置数据表中的筛选数据

Javascript 重置数据表中的筛选数据,javascript,jquery,datatables,datatables-1.10,Javascript,Jquery,Datatables,Datatables 1.10,我有一个Datatable,其中使用AJAX检索数据。然后我有两个搜索函数来过滤数据。搜索功能在处理未过滤的数据时工作正常。一旦应用了一个过滤器,我就无法清除该过滤器或应用另一个过滤器,因为两个过滤器是互斥的(一个过滤器全部付费,另一个过滤器全部未付费)。我认为我的问题是,一旦数据被过滤,然后我尝试清除或应用另一个过滤器,它将作用于数据的子集(已经过滤的数据)。如何在应用新筛选器之前清除并重置筛选数据,以及如何重置筛选器。我已经在这个网站上尝试了一些解决方案,但都不起作用。这里是我的过滤函数 f

我有一个Datatable,其中使用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();

}
功能未付费用(){
$.fn.dataTable.ext.search.push(
功能(设置、数据、数据索引){
var 0=0;
var fee=parseFloat(数据[8])| | 0;//将数据用于余额到期列
如果(费用>零){
返回true;
}
返回false;
}
);
table.draw();
}
函数paidFees(){
$.fn.dataTable.ext.search.push(
功能(设置、数据、数据索引){
var 0=0;
var fee=parseFloat(数据[8]);//将数据用于余额到期列
如果(费用==零){
返回true;
}
返回false;
}
);
table.draw();
}
函数allFees(){
$.fn.dataTable.ext.search.push(
功能(设置、数据、数据索引){
var 0=0;
var fee=parseFloat(数据[8])| | 0;//将数据用于余额到期列
如davidkonrad所说,如果(0)

$.fn.dataTable.ext.search.pop()
为我工作。我只是将其添加到每个方法的顶部,以便在应用新方法之前清除过滤器。

正如davidkonrad所说

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

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

您可以通过
$.fn.dataTable.ext.search.pop()清除自定义过滤器。
(后进先出)谢谢。我知道它必须是我遗漏的简单的东西。这非常有效。我将它添加到两个筛选函数的顶部,并在allFees函数中使用它。你能把它放入一个答案中,这样我们就可以看到这个问题的答案了。你可以通过
$.fn.dataTable.ext.search.pop()
(last in first out)谢谢。我知道这一定是我遗漏的一些简单的东西。这非常有效。我将其添加到两个筛选函数的顶部,并在allFees函数中使用。您能将其放入答案中,以便我们可以看到这个问题得到了回答。