Bonjour à tous,
Je me permets de faire appel à la communauté car je bloc depuis un bon moment sur un problème de ComboBox. Il s'agit d'un espace d'administration web.
Sun un composant MXML, j'ai entre autre 2 combobox :
C'est deux dernières sont alimentées respectivement par deux sources de données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <s:Label x="283" y="20" text="Type règlement :"/> <mx:ComboBox id="mc_id_reglement" x="387" y="12" width="111" dataProvider="{ReglementsList.reglement}" labelField="nom_reglement" prompt="Selectionnez"> </mx:ComboBox> <s:Label x="540" y="20" text="Type expédition :"/> <mx:ComboBox id="mc_id_transport" x="643" y="12" width="112" dataProvider="{TransportsList.transport}" labelField="nom_transport" prompt="Selectionnez"> </mx:ComboBox>
et
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
23
24 //Recupere les types de reglements private function getReglements():void{ getXmlReglements.send(); } //Génération de la liste des type de reglement [Bindable] public var ReglementsList:XML; private function getXmlReglementsHandler(event:ResultEvent):void{ ReglementsList = event.result as XML; } //Recupere les types de transports private function getTransports():void{ getXmlTransports.send(); } //Génération de la liste des type de transports [Bindable] public var TransportsList:XML; private function getXmlTransportsHandler(event:ResultEvent):void{ TransportsList = event.result as XML; }
Jusque là tout va bien, les deux combobos sont alimentées correctement, par contre, s'agissant d'une page permettant de modifier des informations, je souhaite selectionner un item dans chaque combobox, et là çà se complique. Voici mon code ci-dessous pour selectionner les bons items dans les listes déroulantes, et mon soucis et que cela fonctionne aléatoirement une fois sur 2 en moyenne. Quand cela ne fonctionne pas et que les items ne sont pas selectionnés, j'ai comme message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <mx:HTTPService id="getXmlReglements" url="http://www.mondomaine.fr/test/admin/xml/liste_reglements.php" result="getXmlReglementsHandler(event)" useProxy="false" method="POST" resultFormat="e4x" showBusyCursor="true"/> <mx:HTTPService id="getXmlTransports" url="http://www.mondomaine.fr/test/admin/xml/liste_transports.php" result="getXmlTransportsHandler(event)" useProxy="false" method="POST" resultFormat="e4x" showBusyCursor="true"/>
TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
at Modification_Commande/getCommandeHandler()[C:\Users\Thomas\Desktop\admin\src\Modification_Commande.mxml:116]
at Modification_Commande/__get_commande_result()[C:\Users\Thomas\Desktop\admin\src\Modification_Commande.mxml:375]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at HTTPOperation/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[E:\dev\4.y\frameworks\projects\rpc\src\mx\rpc\http\HTTPService.as:993]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[E:\dev\4.y\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:318]
at mx.rpc::Responder/result()[E:\dev\4.y\frameworks\projects\rpc\src\mx\rpc\Responder.as:56]
at mx.rpc::AsyncRequest/acknowledge()[E:\dev\4.y\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:84]
at DirectHTTPMessageResponder/completeHandler()[E:\dev\4.y\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:451]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Je vous remercie par avance, si quelqu'un peu m'indiquer dans quel sens orienter mes recherches sachant que je bloque la dessus depuis déjà pas mal d'heures malheureusement...
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
23
24
25
26
27 private function getCommandeHandler(event:ResultEvent):void{ commandeXml = event.result as XML; mc_id_commande.text = commandeXml.id_commande; mc_date_commande.text = commandeXml.date_commande; mc_date_reglement.text = commandeXml.date_reglement; mc_date_expedition.text = commandeXml.date_expedition; mc_tracking.text = commandeXml.tracking; mc_confidentiel.text = commandeXml.confidentiel; //selection du status de la commande mc_status.selectedIndex = commandeXml.status; //selection du type d'expedition for(var i:Number=0;i<TransportsList.transport.length();i++){ if(TransportsList.transport[i].id_transport == commandeXml.id_transport){ mc_id_transport.selectedIndex = i; } } //selection du type de reglement for(var j:Number=0;j<ReglementsList.reglement.length();j++){ if(ReglementsList.reglement[j].id_reglement == commandeXml.id_reglement){ mc_id_reglement.selectedIndex = j; } } }
Merci et bonne soirée.
Partager