2014-12-10 7 views
10

Ich habe eine Schaltfläche in meiner DataTable angewendet, die beim Klicken die Datentabelle filtert, um nur die angeklickte Zeile anzuzeigen.Suchfilter in Datatable entfernen

Tabelle Initialisierung ist:

 var oDatatable = $("#tblDataTable").DataTable({ 
      dom: '<"top"CRTl><"clear">rt<"bottom"ip><"clear">', 
      columns: [ 
            { data: 'Message' }, 
       { data: 'MessageId' }, 
       { data: null, "defaultContent": "<button id=\"tblRowData\">Click</button>"} 
      ], 

      "columnDefs": [ 
      { "visible": false, "targets": 0 } 
      ] 
      }); 

und meine Click-Ereignis ist:

$('#tblDataTable tbody').on('click', 'button', function (event) { 
    var data = oDataTable.row($(this).parents('tr')).data(); 
    oDataTable 
    .columns(8) 
    .search(data['MessageId']) 
    .draw(); 

Diese arbeiten alle völlig in Ordnung, aber jetzt möchte ich die Filter zurückgesetzt, wenn eine andere Aktion auf der Seite durchgeführt wird. Zum Beispiel das Ändern einer Datetime-Auswahl.

Wie kann ich überprüfen, ob auf die Datentabelle ein Suchfilter angewendet wurde, und diesen entfernen (d. H. Vor dem Klickereignis die Tabelle zurücksetzen).

Antwort

23

Vielleicht suchen Sie an etwas wie folgt aus: http://www.datatables.net/plug-ins/api/fnFilterClear
Sie die Suche auf eine sehr einfache Art und Weise löschen konnte:

var table = $('#example').DataTable(); 
table 
.search('') 
.columns().search('') 
.draw(); 
+0

vielen Dank, das so einfach war :-) – CSharpNewBee

+0

Ist das leistungsfähig? Ich habe festgestellt, dass es tatsächlich langsamer als einige Sucheingaben ist ... – Worthy7