2016-04-11 10 views
2

に適用され、すべてのテーブルをフィルタリングし、このフィルタリング機能のDataTable - フィルタは、DataTableのにちょうどいくつかのテーブル

$.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex)

があります。

私は2つのテーブルを持っており、テーブルのうちの1つにフィルタを適用する必要があります。

table1をフィルタリングしてそのままtable2のままにしておくことをデータシートに知らせるにはどうすればよいですか?

答えて

0

私は私を助けている他の場所で答えを見つけました:

https://stackoverflow.com/a/11545376/4896102

はこの1つだけは、私のために働いた、そしてそれはあなたが使用できるという利点を持っている関数内で

//array with the tables IDs you want the filtering function to ignore 
var allowFilter = ['yourTableId1', 'youTableId2']; 

$.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex) 
{ 
    // check if current table is part of the allow list 
    if ($.inArray(oSettings.nTable.getAttribute('id'), allowFilter) == -1) 
    { 
     // if not table should be ignored 
     return true; 
    } 
    //rest of the code 
    return false; 
}); 

これを追加配列を使用すると、フィルタリング時に複数のテーブルを無視できます。

0

APIのDataTables .search()および.draw()メソッドを使用できます。 .dataTable().DataTable():私はちょうど1.10+のDataTableに、テーブルを初期化するには2つの方法があることを言及したいと思い、online documentation

var dt1 = $('#table1').DataTable(); 
dt1.search('search text').draw(); 

がまた付録としてfiddle

取り組ん参照ください。 2番目のAPIは、私が上記で使用した新しいAPIを返します。最初のAPIを使用する場合は、

1

に記載されているように、$(selector).dataTable().api()を使用して新しいAPIを取得できます。このスニペットは、DataTablesの作成者からチェックしてください。

https://www.datatables.net/forums/discussion/16623/using-fn-datatableext-afnfiltering-push-to-filter-tables

$.fn.dataTableExt.afnFiltering.push(
    function(settings, aData, iDataIndex) { 
     if (settings.nTable.id === 'myTableId') { 
      // filter example 
     } else { 
      // ... 
     } 
    } 
); 

あなたがフィルタリングしたいテーブルのidを確認することができます。それは公式な解決策ではありませんが、機能します。

+0

これはうまくいくかのように見えますが、いくつかの調整が必要です。 私はこの答えがわかりました:http://stackoverflow.com/a/11545376/4896102 –