2009-05-13 6 views
1

J'ai un tableau trié des résultats pour un événement sportif. Quand je clique sur un en-tête, je veux trier le meilleur au pire, toujours. Je ne veux pas qu'il inverse lorsque je clique à nouveau. Dans certains cas, le "meilleur" est le temps le plus court, et dans les autres cas, le "meilleur" est le plus grand montant (c'est-à-dire le plus de poids, la plus longue distance). J'ai eu peu de chance jusqu'à présent.Comment forcer jQuery tablesorter à toujours trier une colonne dans une direction?

Répondre

2

Jamais utilisé auparavant mais auparavant, il ne semble pas faire ce que vous voulez qu'il soit hors de la boîte. Voici quelques astuces (non testées) que j'ai trouvées:

Une manière (pas de modifier la source du plugin) serait de saisir this example et d'ajouter un gestionnaire d'événement click à vos cellules d'en-tête pour déclencher votre tri en utilisant un ordre défini. Vous devrez peut-être supprimer le gestionnaire ajouté par le plugin tablesorter ou renvoyer false de votre gestionnaire pour éviter le tri deux fois.

Sinon, si vous n'êtes pas peur de changer la source de plug-in, il ressemble à la ligne 536 est celui que vous voulez:

// get current column sort order 
this.order = this.count++ % 2; 

Remplacer this.count++ % 2 avec 0 pour croissant, décroissant 1 pour. Vous pouvez également le rendre plus robuste en ajoutant un "ordre forcé" en option (voir les lignes 94-114), peut-être même en le transformant en un tableau (comme sortList) pour indiquer quelles colonnes doivent être forcées.

Bonne chance!

+0

Ouais c'est à peu près ce que je regardais, je voulais juste voir s'il y avait une autre façon de le faire ... merci. – ryanrdl

+0

et voici une autre astuce, je suppose, car j'avais besoin de cette fonctionnalité moi-même ... obtenir ce genre DESC la première fois, mais pouvant utiliser ASC sur le clic suivant, juste changer cette ligne à: this.order = + + this.count% 2; –

+0

Merci. Les lignes que vous avez indiquées me mènent dans la bonne direction. –

Questions connexes