Jquery fnStandingRedraw在datatable插件中不显示任何记录

Jquery fnStandingRedraw在datatable插件中不显示任何记录,jquery,datatables,jquery-datatables,Jquery,Datatables,Jquery Datatables,我正在使用jQuery datatable插件在我的页面上显示记录列表。我从服务器端获取所有数据,并从服务器端处理分页。我希望无论何时引用表,页面状态都应保持不变。我使用以下插件来实现这一点 oTable.fnStandingRedraw(); 这可以正常工作,除非我在表格的最后一页,并且我从该页删除了所有记录,并调用fnStandingRedraw()函数,它显示表格为空,当单击上一页时,它再次显示所有记录 下面是我正在使用的fnStandingRedraw插件的代码 $.fn.dataTa

我正在使用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);
};

这是正确的行为。此脚本提供了通过保持筛选/排序/分页再次绘制表的方法。所以,当您位于最后一页时,删除所有行并调用standing redraw,datatables将保留在最后一页上,并且不显示任何内容

当然,您可以通过检查当前表格长度来尝试捕捉这种情况:

oTable.fnGetData().length
如果这段代码返回0,则可以调用公共重画函数:

oTable.fnDraw()

从没听说过那个插件。如果你给我们一个你找到它的链接,这样我们就可以了解它的功能,那会很有帮助。因为在我看来,通过查看代码,它似乎只调用oSettings.oApi.\u fnDraw(oSettings);当bServerSide为true时???我在问题中包含了插件的链接我当然知道dataTables插件:-)我不知道standingRedraw插件。但是也许@Lukasz的答案已经解决了这个问题。谢谢,我在想这样的事情。但是如果我想让用户进入最后一页怎么办?调用
oTable.fnDraw()
将刷新表并返回到第一页,对吗?