代码之家  ›  专栏  ›  技术社区  ›  Tam

如何为Flex DownDownList设置selectedIndex

  •  0
  • Tam  · 技术社区  · 15 年前

    我有一个数组集合如下

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

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

    selectedIndex = {myArr.getItemIndex(myID)}
    

    但没用。

    1 回复  |  直到 15 年前
        1
  •  2
  •   JeffryHouser    15 年前

    您是否在MXML中设置了selectedIndex?还是动作脚本?因为您使用绑定语法,所以我认为您需要使用MXML。不能绑定到函数的结果,只能绑定到属性。在内部,绑定使用“propertyChange”事件,以便Flex知道值何时更改。事件在setter函数中调度(对于Flex框架中实现的大多数属性)。

    函数没有等价的并行性。您应该能够在AS3中完成作业,但不存在任何问题:

    selectedIndex = myArr.getItemIndex(myID)
    

    不过,您需要确保“myID”是数据提供者的一个元素。从理论上讲,这样的做法应该奏效:

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

    但是,“getItemIndex”可能检查内存位置,而不是实际值比较。如果是这样,那么您需要执行以下操作:

     myID = myArr[0]
    

    让代码正常工作。

    推荐文章