2016-09-29 54 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() 

爲我工作。我只是將其添加到每個方法的頂部,以便在應用新方法之前清除過濾器。