Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/04/2011, 13h34   #1
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 143
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 143
Points : 19
Points : 19
Par défaut problème remplissage combobox

Bonjour,

J'ai 2 combos box:

- la 1ere contient des actifs. Quand je sélectionne un actif, ma 2ème combobox doit se remplir avec les sous actifs correspondant à l'actif sélectionné.

La liste de sous actif que j'obtient contient les bonnes informations mais quand je l'affecte au dataprovider de ma combobox, celle-ci ne se met pas à jour et garde les anciennes informations qu'elles contenait. Par contre, quand je sélectionne un item, la combo se remplit avec le bon contenu...

Voici la fonction de récupération des sous actifs :

Code :
1
2
3
4
5
6
7
8
9
10
 
public function onRechercherListeSousActifResult(e:ResultEvent):void
		{
                            var listSousActif:ArrayCollection = new ArrayCollection();
			listSousActif = e.result as ArrayCollection;
			//Pour binder sur le mxml
			vueVolumetrie.cboSousActif.dataProvider = listSousActif;
			vueVolumetrie.cboSousActif.selectedIndex = 0;
 
			CursorManager.removeBusyCursor();		}
Merci d'avance pour votre aide
cecile38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 15h23   #2
Invité régulier
 
Homme Samuel
Étudiant
Inscription : avril 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme Samuel
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2011
Messages : 10
Points : 7
Points : 7
Lu',


j'ai le même problème.

Sous quel format est ton "e.result" ?
Tu l'as généré en Php ?
samuelFlex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 15h37   #3
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 143
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 143
Points : 19
Points : 19
en fait, je travaille pas avec PHP mais avec java.
Mon e.result est une ArrayList d'Actif
cecile38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2011, 21h15   #4
Invité régulier
 
Homme Samuel
Étudiant
Inscription : avril 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme Samuel
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2011
Messages : 10
Points : 7
Points : 7
J'ai généré mon 'e.result' avec un script Php.

Donc je ne peux pas énormément t'aider avec du Java.

Tu as vérifié la structure de ton ArrayList ? Elle ne doit pas être valide avec une ComboBox.
samuelFlex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 08h52   #5
Membre éclairé
 
Inscription : janvier 2004
Messages : 319
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 319
Points : 384
Points : 384
Citation:
Envoyé par samuelFlex Voir le message
Tu as vérifié la structure de ton ArrayList ? Elle ne doit pas être valide avec une ComboBox.
Avec BlazeDS, les Arraylist Java se mappent en ArrayCollection AS3
J'imagine que c'est donc le cas ici.

Peux-tu montrer ton code MXML?
Kantizbak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 10h13   #6
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 143
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 143
Points : 19
Points : 19
Voici le code mxml des 2 combos:

Code :
1
2
3
4
5
 
<mx:Label text="{resourceManager.getString('i18n','actif')}" x="3"/>
						<mx:Label text="{resourceManager.getString('i18n','sousactif')}" x="3" y="40"/>
						<mx:ComboBox enabled="{!cVolumetriePres.ModeExportPDF}" id="cboActif" labelField="libelle_court" width="238"  itemRenderer="mx.controls.Label" y="16" x="2" change="cVolumetriePres.onSelectionActif()"></mx:ComboBox>
						<mx:ComboBox enabled="{!cVolumetriePres.ModeExportPDF}" id="cboSousActif" labelField="libelle_court" width="238"  itemRenderer="mx.controls.Label" y="55" x="2" change="cVolumetriePres.onSelectionSousActif()"></mx:ComboBox>
cecile38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 15h03   #7
Membre confirmé
 
Avatar de samy2525
 
Inscription : janvier 2008
Messages : 249
Détails du profil
Informations personnelles :
Localisation : France, Hauts de Seine (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 249
Points : 266
Points : 266
dsl pas vu l'affectation du dataProvider
__________________
http://www.m-ataf.com (En cours de construction)
samy2525 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 10h35   #8
Membre éclairé
 
Inscription : janvier 2004
Messages : 319
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 319
Points : 384
Points : 384
Et avec un
?
Kantizbak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 17h08   #9
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 143
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 143
Points : 19
Points : 19
malheureusement le refresh ne fonctionne pas
cecile38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 21h18   #10
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

et en effectuant une maj visuelle via updateDisplayList() comme cela ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
public function onRechercherListeSousActifResult(e:ResultEvent):void
{
                         var listSousActif:ArrayCollection = new ArrayCollection();
			listSousActif = e.result as ArrayCollection;
			//Pour binder sur le mxml
			vueVolumetrie.cboSousActif.dataProvider = listSousActif;
			vueVolumetrie.cboSousActif.selectedIndex = 0;
                        vueVolumetrie.invalidateDisplayList();
			
			CursorManager.removeBusyCursor();		
}
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 08h59   #11
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 143
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 143
Points : 19
Points : 19
la fonction updateDisplayList n'existe pas pour vueVolumetrie.
J'ai essayé invalidateDisplayList mais aucun résultat
cecile38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 09h25   #12
Rédacteur/Modérateur
 
Avatar de Jim_Nastiq
 
Homme Jean-Marie Macé
Ingénieur consultant, leader Flex
Inscription : avril 2006
Messages : 2 194
Détails du profil
Informations personnelles :
Nom : Homme Jean-Marie Macé
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur consultant, leader Flex
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 194
Points : 3 377
Points : 3 377
Salut,

utilise les méthodes invalidateDisplayList et invalidateProperties sur ton objet Combobox
__________________

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
Jim_Nastiq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h07   #13
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Citation:
Envoyé par cecile38 Voir le message
la fonction updateDisplayList n'existe pas pour vueVolumetrie.
J'ai essayé invalidateDisplayList mais aucun résultat
tu n'utilises pas directement updateDisplayList() mais invalidateDisplayList(). Cette dernière fonction invalide la liste d'affichage de ton objet graphique qui est ensuite sur la prochaine frame remis à jour via updateDisplayList().
C'est pourquoi je disais d'utiliser updateDisplayList ()...en utilisant invalidateDisplayList()

Et puis, comme cela ne marche pas à priori, rajoute un invalidateProperties() comme le dit Jim

Bon courage pour ton dev
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h59   #14
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 143
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 143
Points : 19
Points : 19
Marche pas non plus malheureusement...
cecile38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 11h22   #15
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Et si tu fais une boucle après affectation du dataProvider, obtiens tu les valeurs attendues ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public function onRechercherListeSousActifResult(e:ResultEvent):void
{
                            var listSousActif:ArrayCollection = new ArrayCollection();
			listSousActif = e.result as ArrayCollection;
			//Pour binder sur le mxml
			vueVolumetrie.cboSousActif.dataProvider = listSousActif;
			vueVolumetrie.cboSousActif.selectedIndex = 0;
 
                        for each(var o:Object in vueVolumetrie.cboSousActif.dataProvider)
                                trace(o.libelle_court);
 
			CursorManager.removeBusyCursor();		
}
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 11h46   #16
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 143
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 143
Points : 19
Points : 19
oui quand j'affiche ce qu'il y a ds le dataprovider c tout bon. par contre, le contenu de la combo lui n'est pas à jour...
cecile38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 11h52   #17
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
hum bizarre cette affaire...

et si tu bindes un arrayCollection à ton comboBox et que tu le mets à jour dans ta méthode onRechercherListeSousActifResult() sans affecter directement l'arrayCollection à ton comboBox, même résultat ?
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/05/2011, 11h02   #18
Membre confirmé
 
Avatar de samy2525
 
Inscription : janvier 2008
Messages : 249
Détails du profil
Informations personnelles :
Localisation : France, Hauts de Seine (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 249
Points : 266
Points : 266
Ce que tu peux faire aussi c'est de mettre le dataProvider de la combBox à null puis juste après tu set sa valeur avec le resultat de ton service

Code :
1
2
combBox.dataProvider = null;
combBox.dataProvider = resultat;
je pense que ça va le forcer à se mettre à jour

Bon courage

Samy
__________________
http://www.m-ataf.com (En cours de construction)
samy2525 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 08h59   #19
Futur Membre du Club
 
Inscription : décembre 2010
Messages : 143
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 143
Points : 19
Points : 19
le null, j'avais essayé et ça ne fonctionne pas non plus.

Pour info, je viens de trouver la solution en surfant : en fait, c'est un bug de Flex 3.5. Pour la contourner, il faut mettre :

Code :
1
2
 
vueVolumetrie.cboSousActif.dropdown.dataProvider = listSousActif;
En tout cas, je vous remercie pour votre aide
cecile38 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h33.


 
 
 
 
Partenaires

Hébergement Web