Datatables - Boîte de Recherche à l'extérieur de datatable
Je suis à l'aide de tables de données (datatables.net) et je voudrais mon champ de recherche à l'extérieur de la table (par exemple dans l'en-tête div).
Est-ce possible ?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser les tables de données de l'api pour filtrer la table. De sorte que tous vous avez besoin est votre propre champ de saisie avec un événement keyup qui déclenche la fonction de filtre pour les tables de données. Avec css ou jquery vous pouvez masquer/supprimer l'existant champ de saisie de recherche. Ou peut-être les tables de données dispose d'une option pour supprimer à ne pas l'inclure.
La caisse de la Datatables documentation de l'API sur ce.
Exemple:
HTML
JS
$(".dataTables_filter :input").focus().val(value).keypress();
dans lekeyup
sur ma contribution pour environ une heure, avant de trouver ce. Jamais si à l'utilisation de l'API.. solution Élégante!$('#myInputTextField').val(oTable.search());
Comme par @lvkz commentaire :
si vous utilisez datatable avec majuscule d
.DataTable()
( ce qui sera de retour une Datatable objet d'API ) utilisez ceci :qui est @netbrain réponse.
si vous utilisez datatable avec minuscule d
.dataTable()
( cela renvoie un objet jquery ) utilisez ceci :oTable.fnFilter($(this).val());
A fonctionné pour moi aussi,.DataTable()
et celui-ci:oTable.fnFilter($(this).val());
lorsque vous utilisez.dataTable()
La différence est dans la capitale D. j'Espère que ça aide!oTable.api().search($(this).val()).draw();
Il peut être utile, surtout si vous voulez de contrôle manuel sur la paginationlength
ainsi :oTable.api().page.len($(this).val()).draw();
Vous pouvez utiliser le
sDom
option pour cela.Défaut de saisie de recherche dans son propre div:
Si vous utilisez jQuery UI (
bjQueryUI
ensemble detrue
):La ci-dessus sera mis à la recherche/filtrage
input
élément dans son proprediv
avec une classe nomméesearch-box
qui est en dehors de la table.Même si elle utilise ses courts spéciaux syntaxe il peut prendre n'importe quel code HTML jeter à elle.
'<"search-box"r><"H"lf>t<"F"ip>'
ne sais pas si quelque chose de pire existelanguage: { search: "example", searchPlaceholder: "example" }
Cela m'a aidé pour les tables de données de la Version 1.10.4, parce que sa nouvelle API
Des versions plus récentes ont une syntaxe différente:
Notez que cet exemple utilise la variable
table
attribué lors de tables de données est d'abord initialisé. Si vous n'avez pas cette variable est disponible, il suffit d'utiliser:Depuis: DataTables 1.10
– Source: https://datatables.net/reference/api/search()
Ce devrait être le travail pour vous:(DataTables 1.10.7)
ou
J'ai eu le même problème.
J'ai essayé toutes les solutions de rechange posté, mais pas de travail, j'ai utilisé d'une manière qui n'est pas droit, mais cela a fonctionné parfaitement.
Exemple de saisie de recherche
le code jquery
Je veux ajouter une chose de plus à la @netbrain réponse pertinentes dans le cas où vous utilisez le traitement côté serveur (voir serverSide option).
La limitation de requête effectuée par défaut par les tables de données (voir searchDelay option) ne s'applique pas à la
.search()
appel d'API. Vous pouvez le récupérer en utilisant $.fn.dataTable.util.papillon des gaz() de la manière suivante:Vous pouvez déplacer la div lorsque le tableau est dessiné à l'aide de la
fnDrawCallback
fonction."drawCallback": function (settings) { $(".dataTables_filter").each(function () { $(this).appendTo($(this).parent().siblings(".panel-body")); }); },
Dans
loadtransajax.php
vous pouvez recevoir le obtenir la valeur:Si vous utilisez JQuery datatables, de sorte que vous devez juste ajouter
"bFilter":true
. Ceci permet d'afficher la boîte de recherche par défaut à l'extérieur de la table et de ses œuvres de façon dynamique..comme prévu par