我有一个包含约100行的数据表,但一次显示10行,并分页到其他行。如何动态更新数据表当前页面中的单元格。我的代码似乎正在更新第一页的行(选定的行),即使我在第五页也是如此。
var NowVariants = 3;
var row = 4;
var t = $('#mydatatable').DataTable();
t.cell(':eq('+row+')',8).data(NowVariants).draw();
我希望更新发生在我当前所在的数据表页面上。
答案 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()
。