2016-09-29 46 views
0

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

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(); 

} 
+0

您通过'$ .fn.dataTable.ext.search.pop()'清除自定义过滤器(后进先出) – davidkonrad

+0

谢谢。我知道它必须是我错过的简单东西。这工作完美。我将它添加到两个过滤函数中的每一个的顶部,并将其用于allFees函数中。 –

+0

你能把这个问题解答成答案,以便我们看到这个问题得到了解答。 – Mike

回答

1

至于说通过davidkonrad

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

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