web-dev-qa-db-fra.com

Supprimer le filtre de recherche sur Datatable

J'ai appliqué un bouton dans mon DataTable qui, au clic, filtre la table de données pour afficher uniquement la ligne cliquée. 

l'initialisation de la table est:

       var oDatatable = $("#tblDataTable").DataTable({
            dom: '<"top"CRTl><"clear">rt<"bottom"ip><"clear">',
            columns: [
                                   { data: 'Message' },
                { data: 'MessageId' },
                { data: null, "defaultContent": "<button id=\"tblRowData\">Click</button>"}
            ],

            "columnDefs": [
             { "visible": false, "targets": 0 }
            ]
           });

et mon événement clic est:

    $('#tblDataTable tbody').on('click', 'button', function (event) {
    var data = oDataTable.row($(this).parents('tr')).data();
    oDataTable
     .columns(8)
     .search(data['MessageId'])
     .draw();

Tout cela fonctionne parfaitement, mais je souhaite maintenant réinitialiser les filtres lorsque toute autre action de la page est effectuée. Par exemple, changer un sélecteur de date/heure.

Comment puis-je vérifier si un filtre de recherche est appliqué au datatable et le supprimer (c'est-à-dire, réinitialiser la table, avant l'événement click).

16
CSharpNewBee

Peut-être que vous regardez quelque chose comme ceci: http://www.datatables.net/plug-ins/api/fnFilterClear
Vous pouvez effacer la recherche d’une manière très simple:

var table = $('#example').DataTable();
table
 .search( '' )
 .columns().search( '' )
 .draw();
34
Leandro Carracedo

Plus facile

var table = $('#example').DataTable();
table
.search("").draw(); 
0
Alex Montoya