2016-06-01 38 views
1

AJAXのデータがあり、テーブルにレンダリングされます。トグルボタンもあり、その段階は「重複表示」と「すべて表示」です。最初にページに移動すると、すべてのデータがレンダリングされ、ボタンのフェーズは[重複を表示]になります。プレス「を表示する重複」の場合、特別なAJAX要求がサーバに移行し、応答はJSにprocesssingさ:DataTables:テーブルのデータをリセット

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がアヤックスから、このような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

以下のコードを試してみてください。

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

Thnaksを、正常に動作します) –

関連する問題