DataTables:重置表格数据

时间:2016-06-01 13:25:56

标签: javascript jquery datatables

有一些数据,来自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()结果给出。

1 个答案:

答案 0 :(得分:1)

尝试以下代码:

$.fn.dataTable.ext.search = [];
table.draw();