0

以下は、印刷テンプレートに関するメタデータで構成される XML ドキュメントのサンプル XML です。

<TemplateList>
    <PaperSizeTemplates PaperSize="8.5x14">
        <Template>Letter ANSI A Landscape</Template>
        <Template>Letter ANSI A Portrait</Template>
    </PaperSizeTemplates>
    <PaperSizeTemplates PaperSize="A3_11.5x16">
        <Template>A3 Landscape</Template>
        <Template>A3 Portrait</Template>
    </PaperSizeTemplates>
    <PaperSizeTemplates PaperSize="A4_8.5x11">
        <Template>A4 Portrait Custom</Template>
        <Template>A4 Portrait Custom1</Template>
        <Template>A4 Portrait Custom2</Template>
    </PaperSizeTemplates>
</TemplateList>

すべての PaperSizeTemplates 要素の PaperSize 属性値が DropDownList に表示されるように dataProvider を設定したいスパークDropDownListがあります。

たとえば、上記の XML の場合、DropDownList に次のように表示する必要があります。

8.5x14
A3_11.5x16
A4_8.5x11

私は次のことを試しました:

<s:DropDownList id="paperSizeDDL" dataProvider="{_layoutTemplatesXML.paperSizeTemplates.paperSize as XMLListCollection}" />

ドロップダウンリストには何も表示されません。

これに関するヘルプをいただければ幸いです。

データ バインディングと私の例の XML を使用して、これを行う正しい方法を提供してください。

ありがとう!

4

3 に答える 3

1

宣言を次のように変更します。

<s:DropDownList id="paperSizeDDL" dataProvider="{_layoutTemplatesXML.paperSizeTemplates as XMLListCollection}" labelField="@PaperSize" />

ただし、「dataprovider」タグを使用して、XML を XMLListCollection として個別に指定する必要がある場合があります。XML がどのように提供されるかを示していないので、私は推測することしかできません。

于 2012-11-19T17:48:52.390 に答える
1

E4X 宣言を使用する際に考慮すべき点がいくつかあります。

  • すべて大文字と小文字が区別されるため、PaperSizeTemplates ノードを探している場合は、これを正確に参照する必要があります。ルート ノード宣言が変数に割り当てられている場合、つまり: var myXML = ... 次に、XMLList への参照は myXML.PaperSizeTemplates です。
  • 特定のケースでは、実際にノードの属性を探しています-属性は@記号を使用しているため、参照はmyXML.PaperSizeTemplates.@PaperSizeです。

XML ベースのデータ構造に関するセクションがここにあり、参照として役立ちます。

于 2012-11-19T22:02:10.397 に答える
1

他の答えはやや的を射ていますが、うまくいきません。e4xステートメントの大文字と小文字をXMLで使用されている大文字と小文字に一致させることに関する@Mike Pettyのコメントは、問題の一部であることに注意してください。

ただし、もう 1 つの問題は、e4x ステートメントがXMLListオブジェクトを返すことです。を返しませんXMLListCollection。したがって、この式は null と評価されます。

_layoutTemplatesXML.PaperSizeTemplates as XMLListCollection

代わりに、次のようにドロップダウン リストのデータ プロバイダーを設定します。

<s:DropDownList dataProvider="{new XMLListCollection(_layoutTemplatesXML.PaperSizeTemplates.@PaperSize)}"/>

これにより、値が各サイズの文字列である 3 つの XML オブジェクトがドロップダウン リストに取り込まれます。

于 2012-11-19T23:36:33.957 に答える