如何在不重绘整个表的情况下向 JQuery DataTable 添加行?
我想要的行为是找到正确的位置(基于排序)将行插入表中,同时保持表的滚动位置和分页(如果有)。
如何在不重绘整个表的情况下向 JQuery DataTable 添加行?
我想要的行为是找到正确的位置(基于排序)将行插入表中,同时保持表的滚动位置和分页(如果有)。
我面临着同样的问题。我为此找到的解决方案是一个名为 fnStandingRedraw http://datatables.net/plug-ins/api/fnStandingRedraw的新函数。我添加了上面的代码以便能够使用这个功能,
$.fn.dataTableExt.oApi.fnStandingRedraw = function (oSettings) {
if (oSettings.oFeatures.bServerSide === false) {
var before = oSettings._iDisplayStart;
oSettings.oApi._fnReDraw(oSettings);
// iDisplayStart has been reset to zero - so lets change it back
oSettings._iDisplayStart = before;
oSettings.oApi._fnCalculateEnd(oSettings);
}
// draw the 'current' page
oSettings.oApi._fnDraw(oSettings);
};
之后我执行以下命令,
theTable.fnAddData([reply], false);
theTable.fnStandingRedraw();
其中,
theTable : 是数据表变量 (var theTable = $('#example').dataTable();)。
回复:是我添加到我的数据表行中的信息。更多关于http://datatables.net/plug-ins/api/fnStandingRedraw。
第一个命令在表格上添加一行而不重绘它。此后,新行将不会显示在表格上。
第二个命令重绘表格,因此会出现新的原始数据,但保留当前的分页设置。
这对我来说很好。
利用dataTable().fnAddData()
http://datatables.net/ref#fnAddData
例子:
http://www.datatables.net/release-datatables/examples/api/add_row.html