2017-02-20 54 views
0

滤波后恢复行我有一个jQuery的数据表,并使用一个外部滤波器功能的基础上筛选类jQuery的数据表通过功能

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

一些行现在的过滤器的工作原理就好了它的基础上的高清滤除-class和abc-class。 但我不能回来这个函数已经过滤的所有行。我想恢复点击事件中的行。

+0

您的过滤器无法自行关闭。你需要一个按钮,复选框或者你的搜索功能来查看它是否应用。 – Bindrid

+0

我已经过滤出行后,我需要他们点击一个按钮。我没有在这里显示按钮..我只需要一个函数如何取回行 – user4965201

回答

0

这是我的版本,你正在尝试做什么。我的一些标签等是不同的,因为我在现有的代码中使用它。我把按钮放在桌子上。

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

});