我有一个数据表(1.10)从服务器通过AJAX向下拉数据。它不使用服务器端处理,它获取整个数据集并在浏览器中本地操作它。然后我需要更新数据并稍后将其发回。我在操纵部分,但无法弄清楚如何做到这一点。我需要做的是更新单元格的数据,在本地刷新表格,在用户完成更改后,在POST中使用该数据进行保存。
我已经能够通过几种方式更新数据,包括:
$('#dt').dataTable().api().row().data().Code="foo"
$('#dt').dataTable().api().rows().data()[0].Code="foo"
当我执行以下操作时,我可以看到新数据:
$('#dt').dataTable().api().rows().data()
但是,如果我致电draw()
,则不会更新表格。
我唯一能想到的就是从等式中删除AJAX。我可以单独向下拉数据,只是让数据表使用本地数组,操作表外的数组(虽然看起来我已经成功地做了这个)并重绘或破坏/重新创建它...看起来像这应该是可能的,但可能不适用于AJAX数据源。
P.S。我认为应该有一个jquery-datatables-1.10标签,因为版本之间的使用可能会有很大不同。
答案 0 :(得分:0)
哎呀,对不起,我刚刚在docs找到了这个宝石:
如果修改返回数组中包含的数据,请确保使用rows()。invalidate()DT,columns()。invalidate()DT或任何其他失效方法,以使DataTables注意到更改并重新读取数据源。
这解决了我的问题:
$('#dt').dataTable().api().rows().invalidate().draw()