2010-09-26 72 views
0

我有一个数组集合如下如何将selectedIndex针对Flex DownDownList

var myArr:ArrayCollection = new ArrayCollection([ 
       {label: "label1", data: "data1"}, 
       {label: "label2", data: "data2"}]); 

而且一个下拉列表

<s:DropDownList id="myDDL" 
       dataProvider="{myArr}" /> 

如何设置基础上的项目编号为myDDL所选项目(身份识别码) ?我想是这样的:

selectedIndex = {myArr.getItemIndex(myID)} 

但没有奏效。

回答

2

您是否在MXML中设置了selectedIndex?还是ActionScript?由于您使用绑定语法,因此我认为您想使用MXML。你不能绑定到一个函数的结果;只有一个财产。在内部,绑定使用“propertyChange”事件,以便Flex知道值何时更改。该事件在setter函数中调度(对于Flex Framework中实现的大多数属性)。

功能没有等效的并行功能。你应该能够做到在AS3分配W/O型的任何问题,但:

selectedIndex = myArr.getItemIndex(myID) 

你需要确保“身份识别码”是你的数据提供程序的元素,但。像这样的事情在理论上应当工作:

myID = {label: "label1", data: "data1"} 

然而,有可能的是,“getItemIndex”检查的存储位置,而不是实际值进行比较。如果是这样,那么你需要做的事。是这样的:

myID = myArr[0] 

对于代码工作

+0

很好的解释感谢。 – Tam 2010-09-26 18:56:54