En fait, je suis nouveau dans le plugin jQuery datatables.
J'ai attaché le plugin à mes tables en utilisant cette méthode en utilisant ce code.
$(document).ready(function()
$('#table_id').dataTable({
});
});
Ce que je veux maintenant, c'est que datatables fournisse une zone de texte dans laquelle nous pouvons entrer notre chaîne de filtrage et les résultats seront filtrés.
Donc, je veux utiliser ma zone de texte conçue existante à cet effet, je ne veux pas ajouter une nouvelle zone de texte dans l'interface utilisateur. Alors je suis passé par ce lien
http://datatables.net/examples/basic_init/dom.html
Mais je ne comprends pas. Est-il possible d'utiliser la zone de texte existante. S'il vous plaît des conseils
Vous voyez, j'ai eu une telle situation avant de mettre en place ces données
Maintenant, lorsque j'applique ce plugin datatables. Une nouvelle zone de texte est ajoutée pour la recherche. Je ne souhaite pas créer une nouvelle zone de texte. Je souhaite que ma zone de texte existante implémente la fonctionnalité de recherche.
C'est très simple. Tout d'abord, vous devez masquer le champ de recherche par défaut:
.dataTables_filter {
display: none;
}
Exemple de votre propre champ de recherche, placé quelque part dans le code HTML:
<input type="text" id="searchbox">
script à rechercher/filtrer lors de la saisie dans le champ de recherche
$("#searchbox").keyup(function() {
dataTable.fnFilter(this.value);
});
démo de travail -> http://jsfiddle.net/TbrtF/
Si vous utilisez DataTables 1.10, le JS devrait ressembler à ceci:
$("#searchbox").on("keyup search input paste cut", function() {
dataTable.search(this.value).draw();
});
Pour supprimer les options de filtre, vous pouvez utiliser css comme indiqué dans d'autres réponses ou le supprimer lors de l'initialisation du datatable en utilisant:
$("#table").dataTable({"bFilter": false}); //disables filter input
ou en utilisant l'attribut sDom
comme ceci:
"sDom": '<"H"lr>t<"F"ip>' //when bJuery is true
Voir ici http://datatables.net/usage/options#sDom pour plus d'options.
Maintenant, pour utiliser votre propre champ de texte en tant que filtre, associez-y simplement un gestionnaire keypress
et utilisez l'option fnFilter
comme ceci:
$(document).ready(function()
oTable = $('#table_id').dataTable({
"sDom": '<"H"lr>t<"F"ip>'
});
$('#myInputTextField').keypress(function(){
oTable.fnFilter( $(this).val() );
});
});
Vous pouvez définir un nouvel élément newSearchPlace
pour avoir le filtre de recherche de la table de données à l'intérieur:
<div id="newSearchPlace"></div>
Ensuite, placez le filtre de recherche dans ce nouveau lieu:
$("#newSearchPlace").html($(".dataTables_filter"));
vous pouvez changer le style de la recherche très facilement avec css
en css Fichier:
.dataTables_filter input {
background: blue;
}
Avec Javascript
$(".dataTables_filter input").css({ "background" :"blue" });
Essayez-le en le collant sur votre console.
Pour la version actuelle de décembre 2018 (v1.10.19), procédez comme suit:
Masquer le champ de recherche par défaut (CSS):
.dataTables_filter { display: none; }
Ajouter un nouveau filtre à l'endroit souhaité (HTML)
Search:<br><input type="text" id="searchFilter">
Après votre fonction d'inicialisation des DataTables, vous devez écrire votre fonction de recherche (JS):
$(document).ready(function() {
var table = $('#example').DataTable();
$('#searchFilter').on( 'keyup', function () {
table.search( this.value ).draw();
} );
Remarque : fnfilter est obsolète, utilisez donc search (), mais search () ne redessine pas la table, vous devez donc également utiliser draw ().
Oui, vous pouvez faire un cours dans votre css comme:
.pull-left{
float: left !important;
}
puis ajoutez cette classe à la div de recherche datatable en utilisant jquery ou javascript.
exemple:
$('.dataTables_filter').addClass('pull-left');
assurez-vous que votre script est dans la partie principale de votre code HTML.