如何为Flex DownDownList设置selectedIndex

时间:2010-09-26 17:36:16

标签: flex

我有一个Array Collection,如下所示

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

还有一个下拉列表

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

如何根据商品ID(myID)为myDDL设置所选商品?我试过像:

selectedIndex = {myArr.getItemIndex(myID)}

但它不起作用。

1 个答案:

答案 0 :(得分:2)

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

功能没有等效的并行。无论如何,你应该能够在AS3中完成任务,但是:

selectedIndex = myArr.getItemIndex(myID)

但是,您需要确保'myID'是dataProvider的元素。从理论上讲,这样的事情应该起作用:

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

但是,'getItemIndex'可能会检查内存位置,而不是实际的值比较。如果是这样,那么你需要做这样的事情:

 myID = myArr[0]

使代码生效。