有一些数据,来自AJAX并在表格中呈现。还有切换按钮,其阶段是“显示重复”和“全部显示”。当第一次来到页面时,所有数据都被渲染,按钮阶段是“显示重复”。如果按“显示重复项”,特殊的ajax请求将转到服务器,并且响应正在JS中处理:
if (res[0] == '200' || res[0] == '404') {
if (!is_duplicates_showed) { //if pressed 'Show duplicates'
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
return $.inArray($(table.row(dataIndex).node()).find('td:first').find('form').find('input[name="registration_id"]').val(), res[1]) > -1;
}
);
table.draw();
} else { //if pressed 'Show all'
结果:只有那些行是可见的,registration id
从ajax中占用了这些ID。按钮阶段更改为“全部显示”。
问题:当按“全部显示”时,如何重置数据(再次显示所有数据)?
我尝试了什么(在else
部分中):
1
var table = $('#participants').DataTable();
table
.search( '' )
.columns().search( '' )
.draw();
2
$.fn.dataTable.ext.search.pop();
3
table.destroy();
var newTable = $('#participants').DataTable();
newTable.draw();
没有成功。在这些操作之后,我仍然看到“过滤”的行,这些行由push()
结果给出。
答案 0 :(得分:1)
尝试以下代码:
$.fn.dataTable.ext.search = [];
table.draw();