我在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();
}
答案 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快得多。