2017-02-21 36 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

感谢您的批准,我使用这个库,真的很好实施 –