2016-09-29 10 views
0

私はAJAXを使用してデータを取得するDatatableを持っています。次に、データをフィルタリングする2つの検索機能があります。フィルタリングされていないデータを処理した後は、検索機能は正常に機能します。フィルタが適用されると、両方のフィルタが相互排他的であるため、フィルタをクリアすることも、もう一方のフィルタを適用することもできません(1つのフィルタはすべて有料、もう1つはすべて未支払です)。私は、データがフィルタリングされてから別のフィルタをクリアまたは適用しようとすると、データのサブセット(すでにフィルタリングされたデータ)に作用しているということが私の問題だと思います。新しいフィルタを適用する前にフィルタリングされたデータをリセットする方法と、フィルタをリセットする方法を教えてください。私はすでにこのサイトでいくつかのソリューションを試しましたが、うまく機能しませんでした。ここに私のフィルター機能があります。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

ありがとうございました。私はそれが私が行方不明だった単純なものでなければならないことを知っていた。これは完全に機能しました。私はそれを2つのフィルター関数のそれぞれの上部に追加し、allFees関数で使用しました。 –

+0

これを答えに入れて、この質問に答えられることがわかりますか? – Mike

答えて

1

davidkonrad

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

で言ったように私のために働きました。新しいメソッドを適用する前にフィルタをクリアするために、各メソッドの先頭に追加しました。

関連する問題