DataTable单元格更新命令仅更新第一页

时间:2019-03-25 09:52:55

标签: javascript jquery datatables

我有一个包含约100行的数据表,但一次显示10行,并分页到其他行。如何动态更新数据表当前页面中的单元格。我的代码似乎正在更新第一页的行(选定的行),即使我在第五页也是如此。

var NowVariants = 3; 
var row = 4;
var t = $('#mydatatable').DataTable();
t.cell(':eq('+row+')',8).data(NowVariants).draw();

我希望更新发生在我当前所在的数据表页面上。

1 个答案:

答案 0 :(得分:1)

直接回答您的问题:

t.cell($('tr:eq('+row+')', t.table().body()), 8).data(NowVariants).draw();

但是,上面的代码可能不适用于操作表主体的DataTables扩展,例如FixedHeader等。

我也不赞成在这里使用行索引。最好使用类或获取所选行的行索引。

例如,如果您可以将selected类分配给选定的行,则代码将是:

t.cell($('.selected', t.table().body()), 8).data(NowVariants).draw();

如果在选择行时可以使用row().index() API方法获取所选行的行索引,则代码为:

t.cell(rowIndex, 8).data(NowVariants).draw();

此外,最好调用draw(false),因为这样可以保留更新之间的当前页面,有关更多信息,请参见draw()