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 :

Selectionner une ligne dans une datagrid depuis ailleurs


Sujet :

Flex

  1. #1
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut Selectionner une ligne dans une datagrid depuis ailleurs
    Bonjour,

    j'aimerais pouvoir selectionner la ligne d'une datagrid, en fait la surligner, à partir d'un click sur un label par exemple.

    J'ai une datagrid contenant une liste de villes. Je veux que lorsque l'utilisateur clique sur le bouton "Paris", la ligne Paris de la datagrid soit surlignée. Comme lorsque l'on clique dessus.

    Comment peut-on faire ça ?

    Merci pour votre aide.

  2. #2
    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
    En utilisant selectedItem ou selectedIndex par exemple.
    Tu as déjà fait des tests ? Ca ne fonctionne pas avec ces propriétés ?

  3. #3
    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 selectedItems
    Bonjour tu as une propriétes dans le dataGrid qui s'appelme selectedItems c'est un tableau qui contient les items selectionnée du data provider. dans ton cas ce tableau est vide parce que tu as rien selectionné, mais rien ne t'empeche d'ajouter a cette propriété l'element que tu veux selectionné, en gros qu'on tu clicke sur ton label, ben il faut ajouter l'element que tu veux qu'il soit selectionner dans selectedItems et du coup avec le binding, flex changera le visuel de ce dernier, en faite c'est comme le slectedIndex d'un tabnavigator, tu peu le changer depuis un bouton, j'espere ke ca va t'aidé

    dsl pour les fautes d'ortho

    Samy
    http://www.m-ataf.com (En cours de construction)

  4. #4
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut
    Citation Envoyé par samy2525 Voir le message
    Bonjour tu as une propriétes dans le dataGrid qui s'appelme selectedItems c'est un tableau qui contient les items selectionnée du data provider. dans ton cas ce tableau est vide parce que tu as rien selectionné, mais rien ne t'empeche d'ajouter a cette propriété l'element que tu veux selectionné, en gros qu'on tu clicke sur ton label, ben il faut ajouter l'element que tu veux qu'il soit selectionner dans selectedItems et du coup avec le binding, flex changera le visuel de ce dernier, en faite c'est comme le slectedIndex d'un tabnavigator, tu peu le changer depuis un bouton, j'espere ke ca va t'aidé

    dsl pour les fautes d'ortho

    Samy
    Merci pour ta réponse.
    Tu peux détailler ?
    Depuis selectedItems , je fais quoi exactement ?
    Comment je peux surligner la ligne qui correspond ?

  5. #5
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut
    En fait j'ai commencé à faire cette méthode, qui est déclenchée sur un evenement onclick sur le label :

    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
     
     
     private function setInitialItem(nomVille:String):void
    		 {
     
    		  var aDP:Array = mx.utils.ArrayUtil.toArray(grid.dataProvider);
    		  var sDataValueInit:String = nomVille;
    		  var sDataValueCur:String; 
     
    		  for ( var i:Number=0; i<aDP.length; i++ )  {  
     
    		      sDataValueCur = aDP[i].valueOf(); 
    		      if ( sDataValueCur == sDataValueInit )  { 
    		        grid.selectedIndex = i;  
     
    		      }
    		    }
    		  }
    Mais aDP[i].valueOf() me renvoie un tableau d'objets vide ...

    Je pense que l'idée est là de toute façon, non ?

  6. #6
    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
    Oui je pense que c'est à peu près ça.

    Essaie de modifier le selectedItem à la place du selectedIndex :
    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
     private function setInitialItem(nomVille:String):void
             {
                 
              var aDP:Array = mx.utils.ArrayUtil.toArray(grid.dataProvider);
              var sDataValueInit:String = nomVille;
              var sDataValueCur:String; 
              
              for ( var i:Number=0; i<aDP.length; i++ )  {  
        
                  sDataValueCur = aDP[i].valueOf(); 
                  if ( sDataValueCur == sDataValueInit )  { 
                    grid.selectedItem = aDP[i];  
        
                  }
                }
              }
    je crois que c'est quelque chose de ce genre.

    EDIT : Ou alors caste le dataProvider en ArrayCollection au lieu de le convertir en Array.

  7. #7
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut
    Merci beaucoup ellene, le cast vers une ArrayCollection était une bonne idée.

    J'ai aussi modifié la ligne qui récupère le nom de la ville :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      sDataValueCur = aDP_[i].nom;

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/10/2009, 13h31
  2. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  3. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  4. [MySQL] inserer une ligne d'une table dans une autre table
    Par piero53 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 14/12/2008, 18h29
  5. Réponses: 3
    Dernier message: 29/01/2008, 12h08

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