0

我正在尝试设置组合框的数据提供者。我有 2 个组合框:cb_div 和 cb_stores。对于 cb_div,我可以使用 XML 文件正确设置数据提供程序。cb_stores 的 dataprovider 将根据 cb_div 的选择项来设置。

首先,这是我的 XML 文件。cb_div 的数据提供者:

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

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>

我要做的是:如果用户在 cb_div 中选择“日本”,则 cb_stores 的数据提供者应该是 下的商店<stores name="Japan">,如果他选择“欧洲”,则数据提供者应该是<stores name="Europe">

这就是我所做的,但它不起作用:它返回每个商店。

<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>

感谢您的任何帮助,您可以提供。

问候

4

1 回答 1

1

马上

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

需要是

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

注意“==”

改变它,看看还有什么问题。

于 2010-02-15T15:09:45.603 回答