Javascript Datatables表数据清除和表销毁不给出结果
我将数据表与Aurelia框架一起使用。表和它的排序工作得很好,不包括一个时刻。当我检索一个新的数据表时,应该清除并用新数据重新绘制,但我总是看到包含以前和现在传递的数据的行 我的ini代码:Javascript Datatables表数据清除和表销毁不给出结果,javascript,datatable,destroy,Javascript,Datatable,Destroy,我将数据表与Aurelia框架一起使用。表和它的排序工作得很好,不包括一个时刻。当我检索一个新的数据表时,应该清除并用新数据重新绘制,但我总是看到包含以前和现在传递的数据的行 我的ini代码: if (this.results && this.results.length > 0) { console.log('resultsChanged'); setTimeout(() => { this.table = $('#searchR
if (this.results && this.results.length > 0) {
console.log('resultsChanged');
setTimeout(() => {
this.table = $('#searchResultsTable').DataTable({
retrieve: true,
searching: false,
paging: false,
info: false,
orderMulti: false,
order: [[2, "asc"]],
dateFormat: 'dd.mm.YYYY'
});
}, 200);
}
我曾尝试使用“destroy:true”作为选项,但它恢复了第一个数据源,并没有清除表
我以前也尝试过在以下情况下使用此选项:
if ($.fn.DataTable.isDataTable('#searchResultsTable')) {
console.log('table exists')
$.fn.dataTable.destroy('#searchResultsTable');
// $('#searchResultsTable').dataTable.fnDestroy();
}
但是$.fn.dataTable.destroy('searchResultsTable')代码>总是抛出错误。$。fn.dataTable.destroy不是函数
期待您的建议和帮助
更新(完整功能):
如果您想清除数据表并重新绘制它,您可以使用方法执行此操作并重新初始化数据表,这也是您所采用的方法
$.fn.dataTable.destroy('#searchResultsTable'); // This will not work
上面的代码不起作用,因为根据上下文,没有这样的方法
因此,您可以像那样使用this.table.destroy()
。请注意,destroy()
方法接受可选的布尔参数,默认情况下该参数为false
,这意味着表将恢复到其初始状态(因此稍后我们可以重新初始化它)。如果通过true
,该表将从DOM中完全删除
示例代码片段:
$(文档).ready(函数(){
var表,
btndestory=$(“#销毁”),
btnReInit=$(“#init”),
btnRand=$(“#随机”);
init();
btndestory.on('点击',销毁);
btnReInit.on('click',init');
btnRand.on('click',随机数据);
函数销毁(){
试一试{
表1.destroy();
btndestory.attr('disabled',true);
btnReInit.attr('disabled',false);
btnRand.attr('disabled',false);
}catch(e){console.log(e.message);}
}
函数init(){
table=$(“#我的数据表”).DataTable({
检索:对,
搜索:假,
分页:false,
信息:错,
orderMulti:false,
订单:[
[0,“asc”]
]
});
btndestory.attr('disabled',false);
btnReInit.attr('disabled',true);
btnRand.attr('disabled',true);
}
函数randomData(){
var tbody=$(“#我的数据表tbody”);
html(“”);
var行=[];
var iterations=Math.floor(Math.random()*5)+3;//随机计数行
对于(var i=0;i
可以在重新初始化之前随机化数据
毁灭
重新初始化
随机数据
身份证件
使用者
价值
1.
用户1
34569
2.
用户2
137
尝试将$.fn.dataTable.destroy
更改为$.fn.dataTable.destroy
-大写dataTable
尝试过,但没有帮助是的,因为没有这样的方法检查。如果您想销毁该表,可以调用this.table.destroy()
如果您有权访问this.table
@codtex哇,这很有帮助。我以前试过,但没用,不知道为什么。但有一个新问题-在销毁表后,新表不会重新初始化。。。(完整功能更新问题)您可以查看,也可以阅读。还要注意,当您执行this.table.destroy(“#searchResultsTable”)
时,您正在执行this.table.destroy(true)
。此方法只允许布尔值
$.fn.dataTable.destroy('#searchResultsTable'); // This will not work