2017-02-20 46 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(); } 
       }] 
      }); 

});