2016-04-11 9 views
2

In DataTables- gibt es diese FilterfunktionDatentabellen - Filter angewendet, um nur einige Tabellen

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

, die alle Tabellen filtert.

Ich habe zwei Tabellen, und ich brauche den Filter auf nur eine der Tabellen angewendet werden.

Wie lasse ich Datatables wissen, dass ich nur table1 filtern und table2 so lassen möchte, wie es war?

Antwort

0

ich an anderer Stelle gefunden eine Antwort, die mir geholfen haben:

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

Gerade hat dieses Bild in der Funktion

//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; 
}); 

Dies ist für mich gearbeitet, und es hat den Vorteil, den Sie ein verwenden kann Array, so dass Sie beim Filtern mehrere Tabellen ignorieren können.

0

Sie können die Methoden DataTables .search() und .draw() der API verwenden. Siehe online documentation

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

Siehe auch fiddle

Als Nachtrag arbeiten, ich möchte nur erwähnen, dass in den 1.10+ DataTables- gibt es zwei Möglichkeiten, um die Tabelle zu initialisieren: .dataTable() und .DataTable(). Der zweite gibt die neue API zurück, die ich oben verwendet habe. Wenn Sie die erste API verwenden, können Sie die neue API unter Verwendung von , wie in der online documentation

1

Dieser Ausschnitt vom DataTables-Ersteller dokumentiert, abrufen.

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 { 
      // ... 
     } 
    } 
); 

Sie für die id der Tabelle überprüfen, können Sie filtern möchten. Es ist keine offizielle Lösung, aber es funktioniert.

+0

Es sieht aus wie es funktionieren könnte, mit ein paar Verbesserungen. Ich fand diese Antwort für mich arbeiten: http://stackoverflow.com/a/11545376/4896102 –

Verwandte Themen