2010-02-11 18 views
0

J'essaie de définir le fournisseur de données d'une liste déroulante. J'ai 2 comboboxes: cb_div et cb_stores. Pour cb_div, je peux définir correctement le fournisseur de données avec un fichier XML. Le fournisseur de données de Cb_stores doit être défini en fonction de l'élément sélectionné de cb_div.Flex, <mx:Combobox> & XML: get xml node pour spécifier le fournisseur de données

Tout d'abord, voici mes fichiers XML. fournisseur de données pour cb_div:

<?xml version="1.0" encoding="UTF-8"?> 
<divisions> 
<division id="Japan">Japan</division> 
<division id="Europe">Europe</division> 
</divisions> 

Fournisseur de données pour cb_stores:

<list> 
<stores name="Europe"> 
    <store>BOUTIQUE HARROD'S</store> 
    <store>GALERIES LAFAYETTE LILLE</store> 
    <store>GALERIES LAFAYETTE SAISONNIERE</store> 
</stores> 
<stores name="Japan"> 
    <store>ODEIS PACK HANZOMON</store> 
    <store>GINZA</store> 
    <store>OMOTESANDO</store> 
</stores> 
</list> 

Ce que je suis en train de faire est la suivante: si l'utilisateur sélectionne "le Japon" dans cb_div, le dataprovider de cb_stores devrait être les magasins sous <stores name="Japan">, s'il sélectionne "Europe", le fournisseur de données devrait être <stores name="Europe">.

C'est ce que j'ai fait et ça ne marche pas: ça rend tous les magasins.

<mx:Script> 
<![CDATA[ 
    import mx.controls.Alert; 
    private function division_change():void 
    { 
    Alert.show(division.selectedItem.toString()); 
    var temp:XMLList = stores.stores.(@name=division.selectedItem); 
    store.dataProvider = temp.store; 
    } 
]]> 
</mx:Script> 
<mx:VBox verticalGap="10"> 
<mx:ComboBox id="division" dataProvider="{divisions.division}" change="division_change()" prompt=" "/> 
<mx:ComboBox id="store" prompt=" "/> 
<mx:TextInput id="password" displayAsPassword="true"/> 
</mx:VBox> 

Merci pour toute aide que vous pouvez fournir.

Cordialement

Répondre

1

dès le départ

var temp:XMLList = stores.stores.(@name=division.selectedItem); 

a besoin d'être

var temp:XMLList = stores.stores.(@name==division.selectedItem); 

avis le "=="

changement et voir ce qu'il se passe mal.

+0

Super !! N'a pas fait assez attention> _ < Merci beaucoup =) –

+0

Aide toujours à avoir un nouvel ensemble d'yeux revoir votre code. Heureux d'avoir aidé. – invertedSpear