0

データフィールドのxml属性をバインドできないのはなぜですか? (フレックス 4)

<fx:Model id="sampleXML">
        <contacts>
            <contact firstName="Joe" lastName="Smith" emailAddress="joe@smith.com" />
            <contact firstName="Sally" lastName="Lally" emailAddress="sally@lally.com" />
            <contact firstName="Albert" lastName="Rigdon" emailAddress="albert@rigdon.com" />
        </contacts>
    </fx:Model>
<mx:DataGrid dataProvider="{sampleXML.contact}" id="dg">
    <mx:columns>
        <mx:DataGridColumn headerText="First Name" dataField="@firstName"  />
        <mx:DataGridColumn headerText="Last Name" dataField="@lastName" />
        <mx:DataGridColumn headerText="Email Address" dataField="@emailAddress" />
    </mx:columns>
</mx:DataGrid>
4

3 に答える 3

1

dataProviderを{sampleXML.contact}として設定します

{sampleXML.contacts}である必要があります

于 2011-03-15T18:17:17.580 に答える
0

同じ@表記を使用する場合は、fx:Modelをfx:XMLに変更してみてください。モデルはXMLをオブジェクトに逆シリアル化します。これは、@notationが目的の結果をもたらさないことを意味します。次の例が機能します。

<fx:XML id="sampleXML">
   <contacts>
      <contact firstName="Joe" lastName="Smith" emailAddress="joe@smith.com" />
      <contact firstName="Sally" lastName="Lally" emailAddress="sally@lally.com" />
      <contact firstName="Albert" lastName="Rigdon" emailAddress="albert@rigdon.com"/>
   </contacts>
</fx:XML>

<mx:DataGrid dataProvider="{sampleXML.contact}" id="dg">
   <mx:columns>
      <mx:DataGridColumn headerText="First Name" dataField="@firstName"  />
      <mx:DataGridColumn headerText="Last Name" dataField="@lastName" />
      <mx:DataGridColumn headerText="Email Address" dataField="@emailAddress" />
   </mx:columns>
</mx:DataGrid>

fx:Modelを使用する場合は、dataField名の前から「@」を削除します

于 2011-03-16T08:36:04.957 に答える
0

以下に示すように XMLListCollection を使用して、「contactsList」をデータプロバイダーとしてデータグリッドに提供することもできます。

<mx:XML id="tempXML"
        source="assets/contacts.xml" />

<mx:XMLListCollection id="contactsList"
        source="{tempXML.contacts}" />

仮定: xml は assets フォルダーに保存され、xml 名はcontacts.xml です。

于 2011-03-15T20:55:18.933 に答える