0

データ プロバイダーとして 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"
    />

オブジェクトの配列をデータプロバイダーとして使用してみました。アイテム レンダラーは機能し、Horizo​​ntalList は期待どおりに動作します。ただし、xmlファイルを使用すると、空になります....

なぜ機能しないのかわかりません... -_-' ...

あなたが提供できる助けをありがとう=)

よろしく、 BS_C3

4

1 に答える 1

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()}"
于 2010-03-04T17:34:08.927 に答える