103 votes

Comment recharger/rafraîchir jQuery dataTable ?

J'essaie d'implémenter une fonctionnalité par laquelle le fait de cliquer sur un bouton à l'écran provoquera l'activation de mon ordinateur. jQuery dataTable pour rafraîchir (car la source de données côté serveur peut avoir changé depuis la création de la dataTable).

Voici ce que j'ai :

$(document).ready(function() {
    $("#my-button").click(function() {
        $("#my-datatable").dataTable().fnReloadAjax();
    });
});

Mais quand je lance ça, ça ne fait rien. Quelle est la bonne façon de rafraîchir la table de données lorsque le bouton est cliqué ? Merci d'avance !

0voto

AbdurrahmanY Points 692

Dans mon cas (DataTables 1.10.7), le code suivant fonctionne pour moi ;

let table = $(tableName).DataTable();
table.clear().draw();

$(tableName).dataTable({ ... });

[Datatables clear() : Supprime simplement toutes les lignes de données de la table.](https://datatables.net/reference/api/clear())

0voto

Arunraj S Points 14

Réponse très simple

$("#table_name").DataTable().ajax.reload(null, false);

0voto

Carlos Román Points 57

Mon premier appel à la table :

var myTable = $('.myTable').DataTable({
    "language": {
        "url": "//cdn.datatables.net/plug-ins/1.11.0/i18n/es_es.json"
    },
    dom: 'Bfrtip',
    processing: true,
    "paging": false
});

Votre code d'appel ajax ici.

Puis après le résultat de l'ajax :

//Destroy my table
myTable.destroy();

//Place my table again
$("#tableWrapper").html(''+
    '<table class="table-striped myTable">'+
        '<thead>'+
            '<tr>'+
                '<th>Title</th>'+
            '</tr>'+
        '</thead>'+
        '<tbody id="info_conds">'+
            '<td>Content</td>'+
        '</tbody>'+
    '</table>'+
'');

Appeler à nouveau les propriétés de ma table

myTable = $('.myTable').DataTable({
    "language": {
        "url": "//cdn.datatables.net/plug-ins/1.11.0/i18n/es_es.json"
    },
    dom: 'Bfrtip',
    processing: true,
    "paging": false
});

C'est fait.

-2voto

user8108068 Points 1
    function autoRefresh(){
        table.ajax.reload(null,false); 
        alert('Refresh');//for test, uncomment
    }

    setInterval('autoRefresh()', 5000);

-6voto

Viral rana Points 1

Réinitialiser la table de données avec init et écrire retrieve comme true fait si simple

eg.

TableAjax.init();
retrieve: true,

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X