![](/img/trans.png)
[英]how do i change dataprovider in a flex spark list that has itemrenderers?
[英]Flex: Using list as repeater… how do I pass information from the dataprovider to the custom module being called?
当使用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>
程序在初始化过程中停顿...看到任何错误?
如何将值从数据提供程序传输到itemRenderer?
列表类自动执行此操作。 每个itemRenderer都有一个data属性。 并且dataProvider的对象被设置为该data属性的一部分。
在给定dataProvider的情况下,您似乎正在向每个渲染器传递一个数组。 如果是这种情况,则必须创建自己的渲染器。 看起来您已经完成了(modules.project),但是没有向我们显示代码。
若要使itemRenderer在数据更新时自行更新,您将必须覆盖set数据方法或侦听dataChange事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.