2016-09-29 5 views
0

Ich habe eine Datentabelle, in der die Daten mithilfe von AJAX abgerufen werden. Ich habe dann zwei Suchfunktionen, die die Daten filtern. Die Suchfunktionen funktionieren gut, wenn Sie mit ungefilterten Daten arbeiten. Sobald ein Filter angewendet wird, kann ich den Filter nicht löschen oder den anderen Filter anwenden, da sich beide Filter gegenseitig ausschließen (Ein Filter ist "Alle bezahlt" und der andere ist "Alle nicht bezahlt"). Ich denke, mein Problem ist, dass, sobald die Daten gefiltert sind, ich versuche, einen anderen Filter zu löschen oder anzuwenden, er wirkt auf eine Teilmenge der Daten (die bereits gefilterten Daten). Wie lösche ich die gefilterten Daten, bevor ich einen neuen Filter anwende und wie setze ich die Filter zurück? Ich habe bereits einige Lösungen auf dieser Seite ausprobiert, aber sie haben nicht funktioniert. Hier sind meine Filterfunktionen.Gefilterte Daten in DataTables zurücksetzen

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

Sie löschen einen benutzerdefinierten Filter von '$ .fn.dataTable.ext.search.pop()' (last in first out) – davidkonrad

+0

Danke. Ich wusste, dass es etwas Einfaches sein musste, das ich vermisste. Das hat perfekt funktioniert. Ich habe es oben in jeder der beiden Filterfunktionen hinzugefügt und in der allFees-Funktion verwendet. –

+0

Könnten Sie das in eine Antwort schreiben, damit wir sehen können, dass diese Frage beantwortet wird. – Mike

Antwort

1

Als

$.fn.dataTable.ext.search.pop() 
von davidkonrad sagte

für mich gearbeitet. Ich habe es einfach an den Anfang jeder Methode hinzugefügt, um den Filter zu löschen, bevor ich einen neuen anwende.