DataTables sucht den Inhalt von untergeordneten Zeilen

8

Die DataTables-Suchleiste lässt mich nicht nach Inhalten in untergeordneten Zeilen suchen.

Ich habe ausführlich gesucht, um die Antwort darauf zu finden ( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ), aber die Es gibt wenig bis keine Antworten zu diesem Thema.

Hier ist eine einfache jsfiddle und DataTables Debugger-Ergebnisse .

Ich möchte die Tabelle nach einer Nebenstellennummer durchsuchen (die sich in der untergeordneten Zeile befindet), aber wenn Sie eine der Nebenstellennummern in die Suchleiste eingeben, bleiben keine Suchergebnisse übrig.

Ich habe die Lösung von diesem Beitrag ausprobiert, indem ich das hinzugefügt habe :

%Vor%

... aber es funktioniert immer noch nicht, wie Sie in jsfiddle oben sehen können.

Kann mir bitte jemand helfen?

Danke

    
cooltoast 27.05.2015, 00:12
quelle

3 Antworten

8

LÖSUNG

Damit jQuery-DataTables untergeordnete Zeilen durchsuchen können, müssen Sie die in den untergeordneten Zeilen angezeigten Daten der Haupttabelle als ausgeblendete Spalten hinzufügen.

Sie können beispielsweise eine verborgene Spalte für extn data -Eigenschaft hinzufügen, indem Sie die Option columns.visible wie abgebildet verwenden unten:

JavaScript:

%Vor%

HTML :

%Vor%

DEMO

Siehe dieses jsFiddle für Code und Demonstration. Sucht nach 5407 und die erste Zeile wird angezeigt, obwohl die Daten nur in der untergeordneten Zeile angezeigt werden.

    
Gyrocode.com 23.10.2015, 02:36
quelle
2

Ich muss fragen: Was lässt Sie glauben, dass Sie in untergeordneten Zeileninhalt suchen können, die Sie nur dann dynamisch injizieren, wenn die untergeordneten Zeilen angezeigt werden? Und wie sollte eine column() Suche Inhalte aus anderen Zeilen jemals abdecken?

Wenn das gesagt wird, gibt es natürlich einen Workaround. Anstatt den untergeordneten Zeileninhalt immer wieder zu erstellen, behalten Sie ihn in einem Array:

%Vor%

Wenn Sie nun die Tabelle initialisieren, initialisieren Sie auch den Inhalt der untergeordneten Zeile:

%Vor%

Fügen Sie in der Funktion format () dem Feld Erweiterungsnummer eine Klasse hinzu, um den Zugriff zu erleichtern:

%Vor%

Wenn Sie untergeordnete Zeilen anzeigen, fügen Sie den vorgerenderten Inhalt von details[] statt von format() :

ein %Vor%

Erstellen Sie einen Filter, der nur Zeilen zurückgibt, für die eine untergeordnete Zeile details[] eine bestimmte Nebenstellennummer enthält:

%Vor%

Verwenden Sie diesen benutzerdefinierten Filter anstelle der column() Suche in Ihren Eingabe-Handlern:

%Vor%

gegabelte Geige - & gt; Ссылка

Aktualisieren So wenden Sie den obigen Filter auf das allgemeine Suchfeld an:

%Vor%

noch eine gegabelte Geige - & gt; Ссылка

Letztes Beispiel . Kombinieren Sie Detailsuche und "native" Suche

%Vor%

Geige - & gt; Ссылка

    
davidkonrad 27.05.2015 07:45
quelle
0

Das ist ein ziemlich alter Thread, und die angenommene Antwort funktioniert, aber ich wollte eine alternative Lösung vorschlagen.

Ich hatte das gleiche Problem, weil ich nicht in der Lage war, in untergeordneten Zeilen zu suchen, und meine Lösung bestand darin, eine verborgene <td> am Ende meiner Tabelle zu machen, die die Daten in den untergeordneten Zeilen enthielt - so sieht der Indexer es aber der Benutzer nicht.

Für den begrenzten HTML-Code habe ich eine neue Spalte hinzugefügt:

%Vor%

Dann innerhalb des DataTables-Aufrufs:

%Vor%

Dann müssen Sie diese Spalte nur ausblenden. Sie können dies entweder über die empfohlene Methode von DataTables tun:

Ссылка

oder durch die Methode, die ich gewählt habe:

%Vor%

Sie haben am Ende Ihrer Tabelle ein <td> , das alles aus den untergeordneten Zeilen enthält, aber es ist unsichtbar und es funktioniert mit dem Suchfeld / Filter thingy.

    
Brian Powell 31.08.2015 15:32
quelle