【问题标题】:DataTables show "Processing..." label when dynamically fnAddData动态 fnAddData 时,DataTables 显示“处理中...”标签
【发布时间】:2015-07-12 11:21:47
【问题描述】:

我有一个函数可以动态地将数据添加到数据表中。这是函数。

function fnClickAddRow() {
    for (i=0; i<10000; i++) {
        $('#example').dataTable().fnAddData( [
         giCount+".1",
         giCount+".2",
         giCount+".3",
         giCount+".4" ]
        );
    }
}

这个函数会动态追加到我的#example数据表中,但是在操作过程中屏幕看起来是挂着的,有没有办法使用“处理”来显示加载/处理标志:真的,

【问题讨论】:

    标签: jquery datatables


    【解决方案1】:

    没有通过API触发显示“处理中”消息的功能,但是有一个解决方法。

    您需要使用bProcessing: true(适用于DataTables 1.9)或processing: true(适用于DataTables 1.10)启用处理指示器。

    显示 ID 为 example 的表的处理指示符:

    $('.dataTables_processing', $('#example').closest('.dataTables_wrapper')).show();
    

    隐藏ID为example的表的处理指示符:

    $('.dataTables_processing', $('#example').closest('.dataTables_wrapper')).hide();
    

    另一件值得一提的是,由于某种原因,直到我添加 setTimeout 并延迟 100 毫秒,才显示处理指示符。

    附带说明,为了提高性能,您需要将false 指定为fnAddData() 的第二个参数,以表明不需要重新绘制。添加完行后,您可以调用fnDraw() 重新绘制表格,请参阅this jsFiddle

    如果您先将数据放入数组中,然后再调用一次fnAddData(),则可以进一步提高性能。

    有关代码和演示,请参阅 this jsFiddle

    【讨论】:

      【解决方案2】:

      现在似乎有一个processing() plugin 允许您通过 API 执行此操作。

      插件安装后,可以调用为(例如):table.processing([true/false]);

      【讨论】:

        猜你喜欢
        • 2018-03-06
        • 1970-01-01
        • 2014-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多