【问题标题】:Horizontallist control with XML dataprovider带有 XML 数据提供程序的 Horizo​​ntallist 控件
【发布时间】:2010-03-04 16:57:57
【问题描述】:

我正在使用带有 XML 文件的 Horizo​​ntalList 控件作为数据提供者。 这就是 XML 的外观:

<data>
    <zone name="Europe">
        .
        .
        .
    </zone>
    <zone name="Japan">
        <stores>
            .
            .
            .
        </stores>
        <collections>
            <collection id="id1">
                <name>xxx</name>
                <model>xxx</model>
                <hierarchy>xxx</hierarchy>
                <thumbnail>assets/xxx.PNG</thumbnail>
            </collection>
            <collection id="id1Bis">
                <name>xxx</name>
                <model>xxx</model>
                <hierarchy>xxx</hierarchy>
                <thumbnail>assets/xxx.PNG</thumbnail>
            </collection>
            <collection id="id2">
                <name>xxx</name>
                <model>xxx</model>
                <hierarchy>xxx</hierarchy>
                <thumbnail>assets/xxx.PNG</thumbnail>
            </collection>
            <collection id="id2Bis">
                <name>xxx</name>
                <model>xxx</model>
                <hierarchy>xxx</hierarchy>
                <thumbnail>assets/xxx.PNG</thumbnail>
        </collections>
        <clarities>
            .
            .
            .
        </clarities>
    </zone> 
</data>

这就是我的控件的外观

<mx:XML id="data" source="assets/SOD_division.xml"/>

<mx:HorizontalList 
    dataProvider="{data.division.(@name=='Japan').collections}"
    columnCount="2"
    itemRenderer="Renderer"
    width="500"
    horizontalScrollPolicy="off"
    />

我尝试使用对象数组作为数据提供者。项目渲染器可以正常工作,并且水平列表的行为与我预期的一样。 但是,当我使用 xml 文件时,它是空的....

我不知道为什么它不起作用... -_-' ...

感谢您提供的任何帮助 =)

问候, BS_C3

【问题讨论】:

    标签: xml apache-flex dataprovider horizontallist


    【解决方案1】:

    我注意到的第一件事是您的 DP 设置为:

    dataProvider="{data.division.(@name=='Japan').collections}"
    

    但这不是您的 XML 的结构。按照您的 XML 示例,您的 DP 应该是:

    dataProvider="{data.zone.(@name=='Japan').collections}"
    

    现在,当您可能想要一个 XMLList 对象时,这将返回一个 XML 对象,在这种情况下,您的 DP 应该是

    dataProvider="{data.zone.(@name=='Japan').collections.collection}"
    

    或者如果您不关心孩子的本地名称:

    dataProvider="{data.zone.(@name=='Japan').collections.children()}"
    

    【讨论】:

    • 谢谢!!由于您的回答,它设法使其工作=)仅供参考,在我的原始 XML 中,我使用“除法”而不是“区域”=P
    • 欢迎您来到 e4x 的世界,一旦您将 e4x 搞定,您可以用它做些什么真是太棒了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    相关资源
    最近更新 更多