2016-08-04 58 views
1

我想從我的表中檢索drwan到屏幕的數據。Datatables獲取繪製數據

我能夠獲得每個重繪的表格數據,但它是完整的數據集,而不是繪製到屏幕上的內容。

$(document).ready(function() { 
    var table = $('#myTable').DataTable({ 
     dom: 'Blfrtip', 
     buttons: [ 
      { 
       extend: 'excel', 
       text: 'Download Excel' 
      } 
     ] 
    });  
    $('#myTable').on('draw.dt', function(){ 
     console.log(table.data()); 
    }); 
    $('#search-category').bind('input propertychange',function(){ 
     table 
     .column(3) 
     .search(this.value) 
     .draw(); 
    }), 
    $('#search-sub-category').bind('input propertychange', function(){ 
     table 
     .column(4) 
     .search(this.value) 
     .draw(); 
    }) 
}); 

我的目標是獲得每次重繪,實際顯示給用戶的表數據。

https://jsfiddle.net/qbcnsjo8/

+0

數據如何輸入?當然,你可以在輸入前存儲這些數據,然後將它保存到一邊以便以後使用。 –

+0

這個想法是,當表格被過濾時,結果數據可以在javascript中被編輯客戶端。我沒有保存過濾條件並重新過濾整個數據集,而是假設數據表包含了這個功能,並且不想重新發明輪子。 – user3770935

回答

1

使用rows().data() API方法檢索某些或基於特定條件的所有行的數據。

要與搜索行應用檢索數據:

table.rows({ search: 'applied' }).data(); 

要施加搜索檢索數據行當前頁:

table.rows({ 'page': 'current', search: 'applied' }).data(); 

documentation

的返回數組中數據的順序以及從哪些行中獲取數據(搜索行,可見行, tc)由用於獲取選定行的rows()選擇器的selector-modifier選項控制。

查看updated example的代碼和演示。

+0

乾杯,完美的解決方案。我忽略了這一點,並在玩:https://datatables.net/reference/type/column-selector# {integer}:visIdx – user3770935