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

Flex Discussion :

DataGrid : Tri d'une colonne en CASEINSENSITIVE


Sujet :

Flex

  1. #1
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut DataGrid : Tri d'une colonne en CASEINSENSITIVE
    Bonjour à tous,

    Le souci que je rencontre c'est que pour l'instant le tri des colonnes d'un DataGrid tient compte de la case.
    C'est à dire que le 'D' passe avant le 'c' ce qui n'est pas génial.
    Après plusieurs recherches, il apparait que le truc consisterait à mette la main sur la propriété sort de 'quelque chose' et de lui passer en argument ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    objetQueJeCherche.sort(1);
    qui est l'équivalent de :
    objetQueJeCherche.sort(Array.CASEINSENSITIVE);
    Une méthode simple pour contourner le problème serait d'homogéniser la case dans le DataGrid mais mon application nécessite que l'on laisse la case comme elle est.

    Je m'en remet à vous et vous remercie d'avance pour vos suggestions.

  2. #2
    Membre averti Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Points : 310
    Points
    310
    Par défaut
    Bonjour,

    Une méthode simple pour contourner le problème serait d'homogéniser la case dans le DataGrid mais mon application nécessite que l'on laisse la case comme elle est.
    j'ai pas tous capté dsl, peux tu nous eclairssir ou quelqu'un d'autre qui a compris le poste biensure

    Merci

    Samy

  3. #3
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    Bonjour Samy, t'en fait pas pour cette phrase là, c'est juste pour dire qu'il faut vraiment que je trouve comment trier correctement.
    Et que je ne tiens pas à forcer la casse sur mes données pour contourner le problème.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Tu n'as qu'à redéfinir une méthode de tri pour ta colonne : http://livedocs.adobe.com/flex/3/lan...ompareFunction

  5. #5
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    J'avoue j'ai un peu rechigné pensant que c'était tout un bazar

    Mais finalement quenéni ! merci

    Mon code devient alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public function trier(obj1:Object, obj2:Object):int
    {
    	var x:String = obj1.toString().toUpperCase();
    	var y:String = obj2.toString().toUpperCase();
     
    	if(x==y) return 0;
    	if(x>y) return 1;
    	else return -1;
    }
     
    <mx:DataGridColumn sortCompareFunction="trier" />

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function trier(obj1:Object, obj2:Object):int
    {
      return obj1.toString().toUpperCase().localCompare(obj2.toString().toUpperCase()) ;
    }

  7. #7
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    Peut être mais alors il manque un argument parce que une erreur est levée :
    "value n'est pas une fonction".

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    ah bon ? pas chez moi.
    Les arguments supplémentaires sont optionnels.

    Peut-être erreur de syntaxe ?

  9. #9
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    J'ai fait un copié collé de ton return et ça provoque l'erreur :value pas une fonction.
    Donc j'ai été voir la structure de cette fonction et le deuxième argument c'est texto "values..." c'est pour ca que j'ai pensé que ça pouvait venir de là.
    En précédant le return par une alert, j'ai constaté que cette fonction me renvoyait des nombres négatifs du style -25,-28, etc...

    Enfin soit, la méthode précédente fonctionne
    Merci à tous

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    exact le résultat est la différence entre les deux valeurs. Je ne sais pas trop ce que cela signifie, mais en tout les cas c'était une mauvaise idée !!!
    désolé pour le contre temps

  11. #11
    Membre habitué Avatar de ToniConti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2009
    Messages : 245
    Points : 162
    Points
    162
    Par défaut
    Bah c'est rien, ta voulu proposer une solution plus appropriée et qui à le mérite d'être en une ligne (on est beaucoup à apprécier ce genre de solution !!).
    Ça part d'une bonne idée, on tape parfois une dizaine de lignes de code parce qu'on ne connait pas la technique pour le faire en une.
    Et puis d'ailleurs c'est toujours intéressant de connaitre plusieurs façons d'arriver au même résultat.

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

Discussions similaires

  1. [Débutant] WPF Tri d'une colonne Date dans un DataGrid
    Par Dan972 dans le forum C#
    Réponses: 1
    Dernier message: 12/02/2015, 05h28
  2. Réponses: 8
    Dernier message: 03/12/2010, 17h08
  3. Réponses: 1
    Dernier message: 15/09/2008, 18h28
  4. Mauvais focus lors du tri d'une colonne sur un datagrid
    Par Scorpi0 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/10/2007, 15h18
  5. [C#] [WinForms] Evènement sur le tri d'une colonne
    Par beway dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/03/2005, 17h43

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