我有一个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)}
但它不起作用。
答案 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]
使代码生效。