IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Tri spécial sur JS existant


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Points : 59
    Points
    59
    Par défaut Tri spécial sur JS existant
    Bonjour,

    Souhaitant ajouter un tableau de tri dans mon appli, j'ai trouvé ce magnifique js sur internet qui marche du tonnerre.
    Lien du JS
    En revanche, je souhaiterais ajouter un nouveau type de tri dans cette page mais je m'y perds un peu. Que dois-je changer dans ce js pour exécuter un tri spécial quand le nom de la colonne est par exemple "Poste" je veux que l'ordre alphabétique change comme ceci "Gardien, Défenseur, Milieu, Attaquant"

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    A peu près à mi-fichier, tu as un commentaire qui commence par "sort functions"

    Là tu as juste à ajouter ta méthode de tri sur le modèle:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sort_perso: function(a,b) {
        // a : premier élément à comparer
        // b : second élément à comparer
        return 1;
        // retourne 0 si b va avant a, 1 si a va avant b
      }

    Bon courage et n'oublie pas le bouton "Résolu" si ça te suffit

  3. #3
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Points : 59
    Points
    59
    Par défaut
    J'avais plus ou moins repérer l'endroit où ajouter ma fonction de tri, mais je bloque surtout sur l'endroit où l'appeler, ainsi que de lui demander de l'appeler uniquement quand le nom de la colonne est "Poste".

    Donc si tu pouvais être un poil plus précis je ne serais pas contre^^

  4. #4
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Je connais pas cette librairie, donc c'est compliqué d'être vraiment aidant. Ceci dit, si je lis les premières lignes du fichier, je vois:
    Add <script src="sorttable.js"></script> to your HTML
    Add class="sortable" to any table you'd like to make sortable
    Click on the headers to sort
    Je suppose donc que si j'ajoute la librairie à ma page, que je définis la classe comme suggéré sur ma table, à partir de là, quand je cliquerai sur les headers de la table elle se triera.

    Je note d'ailleurs que le programmeur a bien fait les choses si je lis plus bas, puisqu'il a prévu le cas où l'intégrateur n'aurait pas mis de header à son tableau, il en rajoute un au besoin.

    Mais au delà de lire les commentaires du code, je vais surtout voir la doc indiquée au début du fichier:
    http://www.kryogenix.org/code/browser/sorttable/t
    et surtout la FAQ :
    http://www.kryogenix.org/code/browse...le/#stablesort

    Normalement, avec ça, t'as tout.

  5. #5
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Points : 59
    Points
    59
    Par défaut
    Merci gwinyam, en regardant la FAQ et en tâtonnant un peu j'ai enfin trouvé.

    Pour info, voilà ce qu'il faut faire:
    - Dans la balise th de votre tri spécial, ajouter l'attribut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class="sorttable_special"
    - Dans le JS, créer en variable publique le tableau qui va définir votre tri. Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tab = new Array('Un','Deux','Troix','Quatre','Cinq')
    - Ensuite à peu près à mi-fichier ajouter un nouveau type de tri (le nom du tri doit s'appeler comme le nom que vous avez défini dans la balise th, ici il s'agit de "special") et comparez les index:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sort_special: function(a,b) {
        if (a[0]==b[0]) return 0;
    	if(tab .indexOf(a[0])<tab .indexOf(b[0])) return -1;
        return 1;
      }
    Le tour est joué

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tri spécial sur un tableau
    Par laura_ dans le forum Langage
    Réponses: 8
    Dernier message: 16/01/2013, 16h50
  2. Réponses: 17
    Dernier message: 10/05/2011, 09h48
  3. Tri Rapide sur un CLIST
    Par ensisoft dans le forum MFC
    Réponses: 9
    Dernier message: 13/12/2005, 23h22
  4. Réponses: 5
    Dernier message: 13/10/2005, 12h46
  5. Réponses: 2
    Dernier message: 08/04/2004, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo