2017-06-08 98 views
0

我知道我們可以通過columns.width選項在數據表上設置列寬。但是現在我想在xhr事件中更改該選項。通過API動態更改數據表列寬度通過API

基於從服務器獲得的ajax響應,我想隱藏/顯示列並相應地調整其他列的寬度(它們都是固定大小)。有什麼方法可以通過API來實現嗎?

我環顧了所有文檔,但似乎無法實現。

+0

你Ajax響應後加載的數據表,或者它已經被加載,你想在Ajax響應後隱藏/顯示列並更改其他列的寬度大小? –

+0

我正在做關於數據表本身的xhr事件。基本上我想在從服務器中檢索所有數據後進行更改。 – AlfaTeK

+0

我覺得這很容易。你可以檢查是否有其他條件。如果foo顯示/隱藏欄並更改其他欄的寬度。 –

回答

0

一旦dataTable處於初始狀態,您將無法更改設置。但如果你使用column.width你已經關閉autoWidth,那麼每列的寬度很容易改變。這裏有一個例子:

var table = $('#example').DataTable({ 
    autoWidth: false, 
    ajax: { 
    url: 'https://api.myjson.com/bins/avxod' 
    }, 
    columns: [ 
    { data: 'name', width: 50 }, 
    { data: 'position', width: 50 }, 
    { data: 'salary', width: 50 }, 
    { data: 'office', width: 50} 
    ]  
}) 

$('#example').on('xhr.dt', function() { 
    $('#example thead th:eq(1)').width('400'); 
}) 

演示 - >http://jsfiddle.net/cc7x6h64/

它的工作原理,因爲column.width注入每個<th>style="width: xxx;"