2009-10-23 5 views
16

Je ne peux pas comprendre cela. Cette question a également été posée ici http://www.nabble.com/TableSorter-plugin---default-column-sort-DESC-instead--How--to25180761s27240.html#a25180761 sans réponse.Comment obtenir jQuery Tablesorter pour trier par défaut?

J'ai essayé

$.tablesorter.defaults.sortInitialOrder = 'desc'; 

et de modifier le fichier jquery.tablesorter.js par défaut à « desc », mais il ne fonctionne pas. Lorsque je clique sur les en-têtes de colonne, le premier tri est toujours ascendant, donc l'utilisateur doit cliquer deux fois pour descendre les valeurs.

Comment est-ce que je peux trier par Table Trier en descendant par défaut?

Répondre

15

Cela ressemble à un bogue dans le code de tablesorter, ou je ne comprends pas ce que le paramètre sortInitialOrder est censé faire. A la ligne 536, il définit l'ordre de tri en regardant le nombre de fois que la colonne a été triée et en prenant la valeur mod 2. Elle doit également prendre en compte la valeur de sortInitialOrder.

ligne Change 536 de

this.order = this.count++ % 2; 

à

this.order = this.count++ == 0 ? this.order : (1 - this.order); 

Et ajouter après cette ligne (de sorte que le premier clic sur une autre colonne vous donne la valeur par défaut)

$headers.not($cell).each(function() { 
    this.count = 0; 
}); 

et changez la ligne 421 de

o.count = s[1]; 

à

o.order = o.count = s[1]; 

de telle sorte que la commande initiale est annulée si un sortList est appliqué.

Ensuite, vous pouvez utiliser le paramètre sortInitialOrder à tablesorter pour définir un premier ordre de tri par défaut pour la colonne. Toute commande fournie dans le sortList remplacera le sortInitialOrder fourni pour la table entière.

Notez que cela s'applique à Tablesorter 2.0.

+0

Oui, ça marche! Merci beaucoup! –

+0

Excellent - nécessaire pour ce faire sur certains outils d'administration ici sur le site :) –

+0

Vous êtes un maître tvanfosson! – Aaron

7

suffit d'utiliser ce deuxième élément dans le tableau est l'ordre de tri (0 = ascendant, 1 = descendant):

.tablesorter({ sortList: [[0, 1]] }); 
+0

juste de travailler =) – Anubis

21

Essayez la dernière version du site tablesorter - cela semble être fixé quelque part entre la version 2.0 .3 et 2.0.5.

<script type="text/javascript"> 
$(document).ready(function() 
    { 
     $("#theTable").tablesorter({ 
      sortInitialOrder: 'desc', 
      sortList: [[3,1]] // etc. 

    }); 
    } 
); 
</script> 

... qui ont travaillé avec la dernière version de tablesorter, mais n'a pas le précédent que j'avais. J'espère que cela aide!

Questions connexes