【问题标题】:DataTables: Reset table dataDataTables:重置表数据
【发布时间】: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


    【解决方案1】:

    试试下面的代码:

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

    【讨论】:

      猜你喜欢
      • 2017-02-08
      • 1970-01-01
      • 2016-05-13
      • 2012-05-08
      • 2015-12-18
      • 2014-09-16
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      相关资源
      最近更新 更多