DataTables .draw() 未正确触发
DataTables .draw() not firing properly
好的,所以我有一个 DataTable,当单击清除按钮时,我试图重新呈现它。
当我通过我的自定义过滤器过滤 table 时,它按预期工作。但是,当我单击 'Clear' 时,所有输入都会按预期清除,但 table 不会重绘。相反,table 仍然显示 'No Matching Records Found'。控制台中没有抛出任何错误,相同的代码在另一个模板中也能正常工作。
有什么想法吗?
var table = $('#pages').DataTable({
'ordering': true,
"columnDefs": [
{ "name": "title", "targets" : 0},
{ "name": "path", "targets" : 1 },
{ "name": "created", "targets" : 2 },
{ "name": "updated", "targets" : 3 },
{ "name": "creator", "targets" : 4 },
{ "name": "templateName", "targets" : 5 },
{ "name": "status", "targets" : 6 },
{ "name": "includeOnMenu", "targets" : 7 },
],
"dom": 'tip'
});
$('.clear-filter').click(function() {
$("#filter :input").each(function() {
this.value = "";
});
table.draw();
});
您应该可以在 table.draw();
之前使用 table.destroy();
。在进行 table 抽签之前,您很可能已经 "filtering" 了,这就是导致此问题的原因。 table.destroy();
将去掉任何过滤,然后您可以从头开始绘制。
我遇到了一个非常相似的问题。这对我有用:
table.rows().invalidate().draw()
好的,所以我有一个 DataTable,当单击清除按钮时,我试图重新呈现它。
当我通过我的自定义过滤器过滤 table 时,它按预期工作。但是,当我单击 'Clear' 时,所有输入都会按预期清除,但 table 不会重绘。相反,table 仍然显示 'No Matching Records Found'。控制台中没有抛出任何错误,相同的代码在另一个模板中也能正常工作。
有什么想法吗?
var table = $('#pages').DataTable({
'ordering': true,
"columnDefs": [
{ "name": "title", "targets" : 0},
{ "name": "path", "targets" : 1 },
{ "name": "created", "targets" : 2 },
{ "name": "updated", "targets" : 3 },
{ "name": "creator", "targets" : 4 },
{ "name": "templateName", "targets" : 5 },
{ "name": "status", "targets" : 6 },
{ "name": "includeOnMenu", "targets" : 7 },
],
"dom": 'tip'
});
$('.clear-filter').click(function() {
$("#filter :input").each(function() {
this.value = "";
});
table.draw();
});
您应该可以在 table.draw();
之前使用 table.destroy();
。在进行 table 抽签之前,您很可能已经 "filtering" 了,这就是导致此问题的原因。 table.destroy();
将去掉任何过滤,然后您可以从头开始绘制。
我遇到了一个非常相似的问题。这对我有用:
table.rows().invalidate().draw()