使用List组件而不是Repeater时,如何将值从dataprovider传输到itemRenderer?
例如,我有一个数组集合(projectsAC),其中包含具有以下结构的数组:
projectsAC(
0:
Array(
0:number
1:string
2:string
3:string
4:XMLList
)
1:
Array(
0:number
1:string
2:string
3:string
4:XMLList
)
Ect.....
)
我将此数组集合用作数据提供程序,并使用项目渲染器的自定义模块。
如何从模块中访问数组值?到目前为止,我已经得到了以下内容:
<mx:List id="directorsPrepList" dataProvider="{projectsAC}" itemRenderer="modules.project" />
这是我的项目模块看起来正确的(仅用于测试目的)
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:Scheduler="modules.*" layout="absolute" creationComplete="init();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
[Bindable] public var allData:Array = data as Array;
private function init():void
{
Alert.show(String(allData[0]));
}
]]>
</mx:Script>
</mx:Module>
程序在初始化期间停止...看错了什么?
答案 0 :(得分:1)
如何将值从dataprovider传输到itemRenderer?
列表类自动执行此操作。每个itemRenderer都有一个data属性。并且您的dataProvider对象被设置为该数据属性的一部分。
看起来,给定dataProvider,您将渲染器的每个人都传递给一个数组。如果是这种情况,则必须创建自己的渲染器。看起来你已经完成了(modules.project),但你没有向我们展示代码。
要使itemRenderer在数据更新时自行更新,您必须覆盖set data方法或监听dataChange事件。