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 :

mettre à jour une datagrid


Sujet :

Flex

  1. #1
    Membre confirmé Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Par défaut mettre à jour une datagrid
    Bonjour,

    J'ai une datagrid pour petite appli de vote qui est déclarée ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    [Bindable] var listeInscrit:ArrayCollection = new ArrayCollection(new Array({inscrit:"Dupont", vote:""}));
     
    ***
     
    <mx:DataGrid x="400.5" y="260" dataProvider="{listeInscrit}" id="monDataGrid">
    	<mx:columns>
    		<mx:DataGridColumn headerText="Inscrits" dataField="inscrit"/>
    		<mx:DataGridColumn headerText="Résultats" dataField="vote"/>
    	</mx:columns>
    </mx:DataGrid>
    Je voudrais mettre à jour dynamiquement la colonne "Résultats". Je met donc à jour mon array qui est mon provider du datagrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var nomPersonne:String = "Dupont";
    var selectedResto:String = event.currentTarget.selectedItem.resto;
     
    for (i = 0; i < listeInscrit.length; i++) {
    	if (listeInscrit[i].inscrit == nomPersonne) {
    		listeInscrit[i].vote = selectedResto;
    	}
    }
    Mais rien ne se passe, quelqu'un peut m'indiquer pourquoi et comment résoudre ce problème?

  2. #2
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Salut Space23,

    D'atbord concernant ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Bindable] var listeInscrit:ArrayCollection = new ArrayCollection(new Array({inscrit:"Dupont", vote:""}));
    Tu instancies bien ton objet puis l'initialise bien dans une méthode n'est ce pas ??

    Ensuite pourquoi avoir un Array dans un ArrayCollection ?

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre confirmé Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Par défaut
    Heu non je l'initialisais au départ en même temps que ma déclaration. Je l'ai changé pour le mettre dans une fonction appelée à la creationComplete mais j'ai toujours le même problème.

    Pourquoi un array dans un arrayCollection c'est mal? Je me suis appuyé la dessus mais effectivement je trouve cela un peu moyen moi aussi.
    Tu as une autre solution?

  4. #4
    Membre émérite
    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
    Par défaut
    Je ne pense pas que ce type de modification soit détectée.

    Il faut sans doute appeler la méthode refresh() ou bien utiliser la méthode itemUpdated de ArrayCollection :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for (i = 0; i < listeInscrit.length; i++) {
      var o : Object = listeInscrit.getItemAt( i ) ;
      if ((o.inscrit == nomPersonne) && (o.vote != selectedResto)) {
        o.vote = selectedResto;
        listeInscrit.itemUpdated( o, "vote" ) ;
      }
    }
    (code non testé, écrit d'après documentation, je n'ai jamais utilisé itemUpdated... donc sans garantie)

  5. #5
    Membre confirmé Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Par défaut
    J'ai essayé avec le itemUpdated ça marche bien correctement .

    Merci!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/05/2012, 19h30
  2. Prb mettre à jour une table via un fichier excel
    Par antier dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 10h31
  3. Mettre à jour une base sous SQL SERVER 2000
    Par FilipeVV dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/02/2005, 12h24
  4. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56
  5. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08

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