【发布时间】:2016-06-01 13:25:56
【问题描述】:
有一些数据,来自 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() 结果给出的“过滤”行。
【问题讨论】:
标签: javascript jquery datatables