2017-02-20 1 views
0

Ich habe eine jQuery-Datentabelle und mit einer externen Filterfunktion einiger ZeilenjQuery Datentabelle wiederherstellen Reihen nach Funktion Filtern durch

auf Klassen basieren, um herauszufiltern
$.fn.dataTable.ext.search.push(
    function(oSettings, data, dataIndex) { 
     if (oSettings.nTable != document.getElementById('bt-datatable')) { 
      return true 
     } 
     var rowNode = $(table.row(dataIndex).node()); 
     if (rowNode.hasClass('def-class') || rowNode.hasClass('abc-class')) { 
      return rowNode; 
     } 
    } 
); 
table.draw(); 

Jetzt ist der Filter funktioniert gut es filtert basierend auf dem def -klasse und abc-klasse. Aber ich kann nicht alle Reihen zurückbekommen, die diese Funktion gefiltert hat. Ich wollte die Zeilen eines Klickereignisses wiederherstellen.

+0

Ihr Filter enthält keine Möglichkeit, sich selbst auszuschalten. Sie benötigen eine Schaltfläche, ein Kontrollkästchen oder etwas in Ihrer Suchfunktion, um zu sehen, ob es angewendet werden soll oder nicht. – Bindrid

+0

nachdem ich die Zeilen herausgefiltert habe .. ich brauche sie wieder auf einen Klick auf eine Schaltfläche. Ich habe diesen Knopf hier nicht gezeigt. Ich brauche nur eine Funktion, wie man die Reihen zurückbekommt – user4965201

Antwort

0

Hier ist meine Version von dem, was Sie versuchen zu tun. Einige meiner Labels usw. sind anders, weil ich sie für einen vorhandenen Code verwendet habe. Ich stecke den Knopf in den Tisch.

$(function() { 
     // global variable for determining if the class should be filtered 

     var filterClass = true; 
     $.fn.dataTable.ext.search.push(

      function (oSettings, data, dataIndex) { 

       if (oSettings.nTable != document.getElementById('tblTab2') || filterClass == false) { 
         return true 
       } 
       // I did it slightly different here but it does the same thing. 
       var rowNode = $($(oSettings.nTable).DataTable().row(dataIndex).node()); 
       if (rowNode.hasClass('def-class') || rowNode.hasClass('myclass')) { 
        return rowNode; 
       } 
      } 
     ); 


      $('#tblTab2').DataTable({ 
       dom: 'tB', buttons: [{ 
        text: "Filter", action: 
         function (e, dt, node, config) { filterClass = !filterClass; dt.draw(); } 
       }] 
      }); 

});