我正在使用jQuery datatable插件在我的页面上显示记录列表。我从服务器端获取所有数据,并从服务器端处理异常。每当我引用表时,我都希望保持页面状态。我使用以下插件来实现这个
oTable.fnStandingRedraw();
这个工作正常,除非我在表的最后一页上,我删除了该页面中的所有记录并调用fnStandingRedraw()
函数,表明该表是空的,当点击它显示的上一页时所有记录再次。
这是我正在使用的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);
};
答案 0 :(得分:1)
这是正确的行为。此脚本提供了再次绘制表的方法,同时保持过滤/排序/分页。因此,当您在最后一页时,删除所有行并调用常设重绘,数据表保留在最后一页上并且不显示任何内容。
当然,您可以通过检查当前表格长度来尝试捕捉这种情况:
oTable.fnGetData().length
如果这段代码返回0,你可以调用普通的重绘函数:
oTable.fnDraw()