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