Existe-t-il un moyen de désactiver le tri initial pour les DataTables jquery?


231

J'utilise le plugin jquery DataTables . De leur documentation:

Si le tri est activé, DataTables effectuera un premier tri de passe lors de l'initialisation. Vous pouvez définir sur quelle (s) colonne (s) le tri est effectué et le sens du tri avec cette variable. Le tableau aaSorting doit contenir un tableau pour chaque colonne à trier contenant initialement l'index de la colonne et une chaîne de direction ('asc' ou 'desc').

Est-il possible d'activer le tri mais de désactiver ce premier tri lors de l'initialisation? Je fais actuellement le côté serveur de tri initial et j'ai besoin d'une fonctionnalité de tri, mais je n'ai pas besoin de cette fonctionnalité de tri initial.

Réponses:


566

Eh bien, j'ai trouvé la réponse définie "aaSorting" dans un tableau vide:

$(document).ready( function() {
    $('#example').dataTable({
        /* Disable initial sort */
        "aaSorting": []
    });
})

Pour les versions plus récentes des tables de données (> = 1.10), utilisez l' option de commande :

$(document).ready( function() {
    $('#example').dataTable({
        /* No ordering applied by DataTables during initialisation */
        "order": []
    });
})

5
Cette réponse a été d'une grande aide, mais il convient de noter la confusion potentielle causée. Si le col 0 est pré-trié en asc et que ce tri initial est désactivé, lorsqu'un utilisateur clique pour la première fois sur l'en-tête du col 0, il triera dans l'ordre asc. Pour l'utilisateur, il semble que rien ne se passe, car il s'attendra à un ordre de desc. Un deuxième clic triera desc. Pour contourner ce problème, vous pouvez configurer asSorting: ['desc', 'asc']de aoColumnDefssorte que le premier clic soit un tri desc.
tomfumb

8
Pour les versions plus récentes, sa commande: []
Darren

@tomfumb En fait, il y a une interface graphique indiquant qu'il n'est pas trié. Le premier clic affichera le tri activé, même si les éléments ne changent pas. Ca suffit pour moi.
Nelson

2
Vous pouvez également le définir au niveau de la table -><table data-order="[]">
Howdy_McGee

Cette solution ne fonctionnera pas pour moi mais <table data-order="[]">fonctionne pour moi.
Alper


25

Essaye ça:

$(document).ready( function () {
  $('#example').dataTable({
    "order": []
  });
});

cela résoudra votre problème.


1

Dans les options datatable, mettez ceci:

$(document).ready( function() {
  $('#example').dataTable({
    "aaSorting": [[ 2, 'asc' ]], 
    //More options ...

   });
})

Voici la solution: "aaSorting": [[2, 'asc']],

2signifie que le tableau sera trié par troisième colonne,
ascdans l'ordre croissant.


12
La question était de savoir comment "désactiver le tri initial", pas comment spécifier un autre ordre de tri. Cette réponse est mieux adaptée à une question différente.
Fin du codage
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.