如何在Datatables.js源JavaScript函数中重新加载表格

时间:2019-03-12 15:52:52

标签: javascript jquery datatables

我在Datatables上遇到问题,我有一个函数可以构建一个数据数组以馈入DataTables。但是,在一行的末尾是一个带有按钮的单元格,如果按下该按钮,它将从刚从中提取功能的数据(共享点列表)中删除该行。

现在我可以参考整个页面,但是那又慢又笨拙。

如果我让按钮重新运行该功能,我会得到一个DataTables warning:table id=Ttable2 -Cannnot reinitialise DataTables

这是我目前的代码,它并不能说明太多,Tbarray很大,我把它写出来也没多大意义。

$("#tbBody2").empty();
var table = $('#Ttable2').DataTable({
    data: Tbarray,
    scrollY:"475px",
    scrollCollapse: true,

    });

修改

function BuildSR(Tbarray){

    if ($.fn.DataTable.isDataTable('#Ttable2')) {
        table.destroy();
    }

    var table = $('#Ttable2').DataTable({
        destroy: true,
        data: Tbarray,
        scrollY:"475px",
        scrollCollapse: true,
    });

    table.draw();

}

2 个答案:

答案 0 :(得分:0)

最简单的方法是销毁并重新初始化dataTable。

1。检查dataTable是否已经初始化,如果已初始化,则将其销毁:

已编辑

//globally initialize var table first
var table;

if (  $.fn.DataTable.isDataTable( '#Ttable2' ) ) {
    table.destroy();
}

2。然后使用选项destroy: true

进行初始化
table = $('#Ttable2').DataTable({
destroy: true,
data: Tbarray,
scrollY:"475px",
scrollCollapse: true,
});
table.draw();

答案 1 :(得分:0)

我建议使用clear()方法rows.add()所有表条目并用最新数据重新填充表:

$('#Ttable2').clear().rows.add(Tbarray).draw();

那应该比销毁并重新初始化DataTable快得多。