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

Bibliothèques & Frameworks Discussion :

Définir une fonction de tri [Dojo]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut Définir une fonction de tri
    Bonjour,

    J'utilise le composant dojox.grid.DataGrid et je voudrais surcharger la fonctionalitée de tris (par defaut) de la Dojo Grid; pour donner un poid à chaques image; afin de trier la colonne qui contient les images comme il conviens.

    J'ai beaucoup de mal a trouver comment faire avec la documentation de Dojo.

    Je fait donc appelle à vous (pour avoir des pistes) au cas ou des personnes ai déjà eut a faire à un problème analogue.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut Tri sur le store
    Salut,

    Le tri s'effectue via le store associé au DataGrid (en fait en cas de tri la grid note la colonne concernée et demande un rafraichissement des données au store). Il faut donc implémenter le tri sur le store.

    Sans rentrer dans des détails barbants le store se trie en ordonnant les objets qui le composent (en appelant simplement la fonction sort(fcnt) du tableau des éléments du store). Et si par magie le store dispose d'un objet comparatorMap dont chaque attribut (correspondant à une colonne du store) est une fonction de comparaison, alors cette fonction est utilisée pour la comparaison.

    Je sais c'est un peu tortueux de prime abord alors un exemple sera plus parlant...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    var storeNP = .... //le store disposant de colonnes nom, prenom, age
    ...
     
    storeNP.comparatorMap = {};
     
    //fonction qui sera utilisée pour les comparaison des noms
    storeNP.comparatorMap["nom"] = function(a, b){
         //ici le code qui compare 2 noms; voir Array.sort(...) de Javascript	
         //ret>0 ou ret<0 ou ret =0
         return ret;
    }
     
    //possibilité d'ajouter d'autres éléments à comparatorMap...
    storeNP.comparatorMap["age"] = function(a, b){
          ...
          return ret;
    }
     
    ...
     
    <div id="grid" jsid="grid" dojoType="dojox.grid.DataGrid" store="storeNP" ...> </div>
    Ce n'est pas plus compliqué.

    ERE

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    Merci beaucoup pour cette réponse limpide !

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

Discussions similaires

  1. Optionnaliser une fonction de tri
    Par tnarol dans le forum SL & STL
    Réponses: 3
    Dernier message: 15/04/2008, 12h07
  2. Ajouter une fonction de tri
    Par rafmos dans le forum C++
    Réponses: 3
    Dernier message: 10/09/2007, 17h46
  3. définir une fonction avec C++builder 5
    Par dasou dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/03/2007, 23h10
  4. [procedures] définir une fonction
    Par Aquaphobe dans le forum DB2
    Réponses: 4
    Dernier message: 05/10/2006, 08h05
  5. Réponses: 8
    Dernier message: 20/12/2004, 15h14

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