我的问题是,如何将此Multi Dim数组收集并将2级应用于下拉列表,
var someArray:ArrayCollection = new ArrayCollection( [
{ label: "Level 1 p1", data:
{ label: "Level 2", data: "some stuff" }
},
{ label: "Level 1 p2", data:
{ label: "Level 2", data: "some stuff" }
}
] );
<s:DropDownList includeIn="items" id="classSelect" dataProvider="{someArray[0].data}" selectedIndex="0" labelField="label" x="405" y="150"/>
someArray [0] .data - 例如将其指向条目1,数据级别的内容又是一个arrayList,我在这里理解指针是如何工作不正确的?
答案 0 :(得分:2)
我不确定你的意思
将级别2应用于下拉列表
如果要在下拉列表中显示2级文本,可以使用itemRenderer或labelFunction向下钻取到对象中以返回文本。概念上是这样的:
protected function getLevel2(item:Object):String{
return item.data.label;
}
<s:DropDownList dataProvider="{someArray}" labelFunction="getLevel2" />
如果希望dataProvider只包含嵌套对象,则必须遍历someArray值并创建仅包含2级对象的新集合。从概念上讲是这样的:
var newDataProvider :ArrayCollection = new AryCollection();
for each (item in someArray){
newDataProvider.addItem(item.data);
}
我还要补充一点,作为澄清一点,您的dataProvider的当前设置很可能会提供错误,因为您的'data'是一个实现IList接口的通用对象。
<s:DropDownList dataProvider="{someArray[0].data}" />
如果确实有效,那么你最终会得到一个只有一个项目的dataProvider。