您能否告诉我如何更新jquery数据表中的选定行?
在下面的代码中,我试图设置一个单元格。看起来它已经设置但没有反映在表格中。
var datatable = $('#table').DataTable();
datatable.row('.selected').cell(':eq(1)').data("1234");
alert(datatable.row('.selected').cell(':eq(1)').data());
这里能够提醒已更改的值,但在数据表UI中没有反映出来。你能救我吗?
答案 0 :(得分:3)
您必须使用{(1}}方法重绘表格,如cell()文档中所述.data()方法:
请注意,当用作setter时,此方法设置要应用于表的数据,将其存储在数据源数组或行的对象中,但不更新表的内部数据缓存(即搜索并且命令缓存)直到调用 draw()方法。
.draw()
答案 1 :(得分:3)
draw()从:DataTables 1.10重绘表格。
说明执行添加或删除操作等操作时 行,改变了排序,过滤或分页的特性 表格你会希望DataTables更新显示以反映这些 变化。此功能是为此目的而提供的。
您的代码是正确的,但数据表不会自动应用更改,只需调用draw()函数。
datatable.row('.selected').cell(':eq(1)').data('123').draw();
答案 2 :(得分:1)
对我来说,这是解决方案:
var t = $('#myTable').DataTable();
t.cell('.selectedRow', ':eq(0)').data('something data');
t.cell('.selectedRow', ':eq(1)').data('something data');
t.cell('.selectedRow', ':eq(2)').data('something data');
t.draw();
答案 3 :(得分:0)
// selectedRowIndex 应该是全局的 var selectedRowIndex = oTable.row(this).index();
//在更新选中行数据的时候,做这个 oTable.cell(selectedRowIndex,2).data("xyz"); // 其中 2 是单元格索引
// 它将反映网格中的数据。 :)