How to include an XML into a DataGrid using custom columns – come includere un XML all’interno di un DataGrid utilizzando colonne personalizzate
[ENGLISH]
Today I am working about registered user views in DataGrid and I have to view all of them in a DataGrid. I can get them by an XML generated by a back-end script.
The code i have used is this:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas implements="RMGConnect.Services.RMGIService" xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#009900" width="100%" height="100%">
<mx:Script>
<![CDATA[
import RMGConnect.Core.*;
[Bindable]
private var user_data:XML = <preferences>
<item id="1" userid="admin" />
<item id="2" userid="collaborator" />
<item id="3" userid="editor" />
<item id="4" userid="vice-admin" />
<item id="5" userid="alphatester" />
<item id="6" userid="betatester" />
<item id="7" userid="omegatester" />
<item id="8" userid="dummyuser" />
</preferences>
public function startService():void {
RMGCommon.showDebug(dg_users.columns.toString());
}
]]>
</mx:Script>
<mx:DataGrid dataProvider="{user_data.item}" id="dg_users" width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="id" dataField="@id" />
<mx:DataGridColumn headerText="user-id" dataField="@userid" />
</mx:columns>
</mx:DataGrid>
</mx:Canvas>
Binding the XML foo-variables with the DataGrid, automatically i get an XMLListCollection of all “item” nodes. Using mx:columns and mx:DataGridColumn can set header text and source data of every column of my DataGrid.
[ITALIANO]
Oggi sto sviluppando un servizio che consenta di visualizzare una lista completa di tutti gli utenti registrati in un DataGrid. La lista la ottengo da un XML generato in automatico dai servizi back-end. Il codice che ho utilizzato รจ il seguente:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas implements="RMGConnect.Services.RMGIService" xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#009900" width="100%" height="100%">
<mx:Script>
<![CDATA[
import RMGConnect.Core.*;
[Bindable]
private var user_data:XML = <preferences>
<item id="1" userid="admin" />
<item id="2" userid="collaborator" />
<item id="3" userid="editor" />
<item id="4" userid="vice-admin" />
<item id="5" userid="alphatester" />
<item id="6" userid="betatester" />
<item id="7" userid="omegatester" />
<item id="8" userid="dummyuser" />
</preferences>
public function startService():void {
RMGCommon.showDebug(dg_users.columns.toString());
}
]]>
</mx:Script>
<mx:DataGrid dataProvider="{user_data.item}" id="dg_users" width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="id" dataField="@id" />
<mx:DataGridColumn headerText="user-id" dataField="@userid" />
</mx:columns>
</mx:DataGrid>
</mx:Canvas>
Effettuando un binding tra la variabile XML (contenente dati fasulli) ed il DataGrid, automaticamente ottengo una XMLListCollection di tutti i nodi “item”, che posso gestire comodamente nelle colonne tramite i tag mx:columns e mx:DataGridColumn con gli attributi headerText (titolo della colonna) e dataField (dato da visualizzare).
