2009-12-17 12 views
1

Je travaille avec jquery tablesorter pour afficher des tableaux de musique. J'ai donc quelques colonnes avec la position artiste - chanson - tableau.Jquery Tablesorter: trier les chiffres au-dessus des lettres

La position du graphique à colonnes contient principalement des nombres; mais quand une chanson ne figure pas dans le tableau, elle obtient la valeur "-". Cela crée un problème de tri lorsque je veux trier la colonne, car les valeurs "-" seront triées au-dessus des nombres.

Je reçois ce Michael Jackson Human Nature - Michael Jackson Thriller 1 Michael Jackson Bad 2

Mais je veux d'abord les chiffres et trier comme ceci: Michael Jackson Thriller 1 Michael Jackson Bad 2 Michael Jackson Human Nature -

Quelqu'un peut-il m'aider? A-t-il quelque chose à voir avec les types de données? J'utilise maintenant varchar.

Merci

Répondre

1

Vous pouvez essayer d'ajouter votre propre analyseur, comme dans l'exemple here. Dans votre analyseur vous pouvez modifier la valeur qui est passée à tablesorter - et si la valeur est "-" (si c'est votre seul problème), vous pouvez le définir, disons, 999999. Dirty, hack rapide,

mais c'est ce qui me vient à l'esprit et ce que je ferais. Puis, comme dans votre exemple, vous devez définir le type sur numérique, afin que les numéros soient bien triés.

1

Merci, j'ai compris! Voici le code que je veux partager aussi; un peu plus complexe parce que je travaille avec le pagineur, les effets de zèbre et la position de plusieurs cartes d'autres pays:

$("#myTable") 
.tablesorter({ headers: {3: {sorter:'charts'},4: {sorter:'charts'},5: {sorter:'charts'} 
,widthFixed: true, widgets: ['zebra'] } }) 
.tablesorterPager({ container: $("#pager"), positionFixed: false }); 
});