2017-02-21 102 views
0

我被一些[很應該]非常簡單的東西卡住了:修改單元格的內容後,我無法用draw()使更改可見。DataTables draw()不會改變顯示

這是一個基本樣本,顯示DataTable().data()更改前後,而顯示的表保持不變。

$('table').DataTable({ 
    data: [ 
    {a: 'A1', b: 'B1'}, 
    {a: 'A2', b: 'B2'} 
    ], 
    columns: [ 
    {data: 'a', title: 'A'}, 
    {data: 'b', title: 'B'} 
    ] 
}); 
var dt = $('table').DataTable(); 
    console.log('before:', dt.data()[0]); 
$('button').click(function() { 
    dt.row(0).data().a = 'XXX'; 
    dt.draw(); 
    console.log('after:', dt.data()[0]); 
}); 

對不起,它不能與SO代碼段,這觸發了很多安全錯誤超時之前執行。
但是你可以看到它在this fiddle中工作。

注意:我也嘗試在draw()之前插入invalidate(),但沒有成功。

回答

0

更新自定義單元格(DOC): https://jsfiddle.net/hdadLhmo/2/

$('table').DataTable({ 
    data: [ 
    {a: 'A1', b: 'B1'}, 
    {a: 'A2', b: 'B2'} 
    ], 
    columns: [ 
    {data: 'a', title: 'A'}, 
    {data: 'b', title: 'B'} 
    ] 
}); 
var dt = $('table').DataTable(); 
    console.log('before:', dt.data()[0]); 
$('button').click(function() { 
    dt.row(0).data().a = 'XXX'; 
    dt.draw(); 
    console.log('after:', dt.data()[0], dt.cell(0, 0).data('XXX')); 
}); 
+0

非常感謝這個DOC鏈接!正如OP注意到的那樣,_DataTables保留了對象引用,但不是array_是基本文檔中缺少的關鍵信息。 – cFreed

+0

感謝您的批准,我使用這個庫,真的很好實施 –