如何更新jquery数据表中的选定行

时间:2016-07-24 09:46:35

标签: javascript jquery datatables

您能否告诉我如何更新jquery数据表中的选定行?

在下面的代码中,我试图设置一个单元格。看起来它已经设置但没有反映在表格中。

var datatable = $('#table').DataTable();
datatable.row('.selected').cell(':eq(1)').data("1234");
alert(datatable.row('.selected').cell(':eq(1)').data());

这里能够提醒已更改的值,但在数据表UI中没有反映出来。你能救我吗?

4 个答案:

答案 0 :(得分:3)

您必须使用{(1}}方法重绘表格,如cell()文档中所述.data()方法:

  

请注意,当用作setter时,此方法设置要应用于表的数据,将其存储在数据源数组或行的对象中,但不更新表的内部数据缓存(即搜索并且命令缓存)直到调用 draw()方法。

.draw()

检查documentation

答案 1 :(得分:3)

Official documentation

  

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 是单元格索引

// 它将反映网格中的数据。 :)

https://datatables.net/reference/api/row().index()