Ich verwende DataTables ( datatables.net ) und möchte, dass sich mein Suchfeld außerhalb der Tabelle befindet (z. B. in meinem Header div).
Ist das möglich ?
jquery
search
datatables
filtering
Athanasios Emmanouilidis
quelle
quelle
$(".dataTables_filter :input").focus().val(value).keypress();
in denenkeyup
auf meinem Input für etwa eine Stunde, bevor diese zu finden. Niemals die API verwenden. Elegante Lösung!Gemäß @ lvkz Kommentar:
Wenn Sie datatable mit Großbuchstaben d verwenden
.DataTable()
(dies gibt ein Datatable API-Objekt zurück), verwenden Sie Folgendes:Das ist @netbrain Antwort.
Wenn Sie datatable mit Kleinbuchstaben d verwenden
.dataTable()
(dies gibt ein jquery-Objekt zurück), verwenden Sie Folgendes:quelle
oTable.fnFilter($(this).val());
Arbeitete auch für mich,.DataTable()
und diese:oTable.fnFilter($(this).val());
wenn Sie.dataTable()
den Unterschied verwenden ist in der Hauptstadt D. Hoffe es hilft!oTable.api().search($(this).val()).draw();
kann nützlich sein, insbesondere wenn Sie auch die Paginierung manuell steuern möchtenlength
:oTable.api().page.len($(this).val()).draw();
Sie können die
sDom
Option hierfür verwenden.Standard mit Sucheingabe in einem eigenen div:
Wenn Sie die jQuery-Benutzeroberfläche verwenden (auf
bjQueryUI
eingestellttrue
):Mit dem obigen Befehl wird das Such- / Filterelement mit einer Klasse namens außerhalb der eigentlichen Tabelle
input
in ein eigenes Element eingefügt.div
search-box
Obwohl es seine spezielle Kurzschrift-Syntax verwendet, kann es tatsächlich jeden HTML-Code verwenden, den Sie darauf werfen.
quelle
'<"search-box"r><"H"lf>t<"F"ip>'
nicht sicher, ob etwas Schlimmeres existiertlanguage: { search: "example", searchPlaceholder: "example" }
Dieser hat mir bei DataTables Version 1.10.4 geholfen, weil es eine neue API gibt
quelle
Neuere Versionen haben eine andere Syntax:
Beachten Sie, dass in diesem Beispiel die Variable verwendet wird, die
table
beim ersten Initialisieren von Datentabellen zugewiesen wurde. Wenn Sie diese Variable nicht zur Verfügung haben, verwenden Sie einfach:Seit: DataTables 1.10
- Quelle: https://datatables.net/reference/api/search ()
quelle
Dies sollte für Sie funktionieren: (DataTables 1.10.7)
oder
quelle
Ich hatte das gleiche Problem.
Ich habe alle Alternativen ausprobiert, aber keine Arbeit. Ich habe einen Weg gewählt, der nicht richtig ist, aber perfekt funktioniert hat.
Beispiel für eine Sucheingabe
der jquery-Code
quelle
Ich möchte der Antwort von @ netbrain noch etwas hinzufügen, das für den Fall relevant ist, dass Sie die serverseitige Verarbeitung verwenden (siehe serverSide) Option ).
Die standardmäßig von Datentabellen durchgeführte Drosselung von Abfragen (siehe Option searchDelay ) gilt nicht für den
.search()
API-Aufruf. Sie können es mit $ .fn.dataTable.util.throttle () auf folgende Weise zurückerhalten :quelle
Sie können das div verschieben, wenn die Tabelle mit der
fnDrawCallback
Funktion gezeichnet wird .quelle
"drawCallback": function (settings) { $(".dataTables_filter").each(function () { $(this).appendTo($(this).parent().siblings(".panel-body")); }); },
In erhalten
loadtransajax.php
Sie möglicherweise den get-Wert:quelle
Wenn Sie JQuery dataTable verwenden, müssen Sie nur hinzufügen
"bFilter":true
. Dies zeigt das Standardsuchfeld außerhalb der Tabelle an und funktioniert dynamisch. Wie erwartetquelle