繁体   English   中英

Flex:使用列表作为转发器…如何将信息从数据提供者传递到被调用的自定义模块?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM