Поле данных атрибута xml - PullRequest
0 голосов
/ 15 марта 2011

Почему я не могу связать атрибут xml для поля данных? (flex 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>

Ответы [ 3 ]

1 голос
/ 15 марта 2011

Вы устанавливаете dataProvider как {sampleXML.contact}

Это должно быть {sampleXML.contacts}

0 голосов
/ 16 марта 2011

Попробуйте изменить 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, поместите «@» перед именами вашего поля данных

0 голосов
/ 15 марта 2011

Вы также можете попробовать использовать XMLListCollection, как показано ниже, и предоставить 'contactsList' в качестве поставщика данных для сетки данных.

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

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

Предположение: xml хранится в папке активов, а имя xml - contacts.xml

...