2017-02-20 5 views
0

У меня есть JQuery DataTable и с помощью функции внешнего фильтра, чтобы отфильтровать несколько строк на основе классовJQuery Datatable восстановления строки после фильтрации через функцию

$.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(); 

Теперь фильтр работает нормально он отфильтровывает на основе опр класс и класс abc. Но я не могу просто вернуть все строки, отфильтрованные этой функцией. Я хотел восстановить строки в событии клика.

+0

Ваш фильтр не имеет возможности отключиться. Вам понадобится кнопка, флажок или что-то в вашей функции поиска, чтобы увидеть, следует ли ее применять или нет. – Bindrid

+0

после того, как я отфильтровал строки. Мне нужно их обратно одним нажатием кнопки. Я не показывал эту кнопку здесь .. Мне просто нужна функция, как вернуть строки – user4965201

ответ

0

Вот моя версия того, что вы пытаетесь сделать. Некоторые из моих ярлыков и т. Д. Отличаются друг от друга, потому что я использовал его в существующем коде. Я положил кнопку в таблице def.

$(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(); } 
       }] 
      }); 

}); 
Смежные вопросы