fnStandingRedraw在datatable插件中没有显示任何记录

时间:2014-03-05 13:04:46

标签: jquery datatables jquery-datatables

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

Datatable Plugin Link

1 个答案:

答案 0 :(得分:1)

这是正确的行为。此脚本提供了再次绘制表的方法,同时保持过滤/排序/分页。因此,当您在最后一页时,删除所有行并调用常设重绘,数据表保留在最后一页上并且不显示任何内容。

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

oTable.fnGetData().length

如果这段代码返回0,你可以调用普通的重绘函数:

oTable.fnDraw()