在不重绘的情况下向JQuery DataTable添加行

时间:2012-12-31 16:28:19

标签: javascript jquery datatable

如何在不重绘整个表的情况下向JQuery DataTable添加行?

我想要的行为是找到正确的位置(基于排序)将行插入表中,同时保持表的滚动位置和分页(如果有的话)。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我找到的解决方案是一个名为的新功能 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的更多信息。

第一个命令在表上添加一行而不重绘它。在此之后,新行将不会显示在表格上 第二个命令重绘表格,因此将显示新原始,但保留当前的分页设置 这对我来说很好。

答案 1 :(得分:0)