or in your datagrid datacolumn for the dataField just use
"@<attributename>", such as "@name" or "@value".
for an xml such as this: var myXML:XML = <users><user name="blah"
value="asdf"></users>;
you can bind it to dataprovider like this: myGrid.dataprovider =
myXML.children();
which produces an XMLList which is bindable.
now, if you want to really bind it and make sure changes are propagated back
to the list you just create a variable of xmllist type, assign
myxml.children() to it, and set it to bindable such as this:
[Bindable]
var myXMLList = myXML.children();
mygrid.dataprovider = myXMLList;
that's it!
-A
On 2/14/07, Pablo <[EMAIL PROTECTED]> wrote:
The XML:
<root>
<item>
<name value="Pete" type="1" />
<city value="NY" type="2" />
<phone value="33-22-555" type="1" />
<count value="10" type="1" />
</item>
<item>
<name value="Pete2" type="2" />
<city value="NY" type="1" />
<phone value="33-22-555" type="1" />
<count value="10" type="3" />
</item>
<item>
<name value="Pete3" type="1" />
<city value="NY" type="1" />
<phone value="33-22-555" type="1" />
<count value="10" type="1" />
</item>
</root>
The CODE:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="init();dgRPC.send()">
<mx:Script>
<![CDATA[
import components.CellColorer;
import vo.DGCellContainer;
import mx.collections.ArrayCollection ;
import mx.rpc.events.ResultEvent;
[Bindable]
private var dgData:ArrayCollection=new ArrayCollection();
private var aColors:Array=new
Array('','0xff0000','0x00ff00','0x0000ff');
private function init():void
{
var nameCellColorer:ClassFactory=new
ClassFactory(CellColorer);
nameCellColorer.properties={bShowName:true};
colName.itemRenderer=nameCellColorer;
var cityCellColorer:ClassFactory=new
ClassFactory(CellColorer);
cityCellColorer.properties={bShowCity:true};
colCity.itemRenderer=cityCellColorer;
}
private function onDataGridResult(event:ResultEvent):void
{
var dgc:DGCellContainer;
trace("!")
for each(var p:XML in event.result..item)
{
dgc=new DGCellContainer();
[EMAIL PROTECTED];
dgc.nameColor=aColors [Number([EMAIL PROTECTED])];
[EMAIL PROTECTED];
dgc.cityColor=aColors[Number([EMAIL PROTECTED])];
[EMAIL PROTECTED];
dgc.phoneColor=aColors [Number([EMAIL PROTECTED])];
[EMAIL PROTECTED];
dgc.countColor=aColors[Number([EMAIL PROTECTED])];
dgData.addItem(dgc);
}
}
]]>
</mx:Script>
<mx:HTTPService url="stub/ColoredDataGrid.xml" id="dgRPC"
result="onDataGridResult(event)" resultFormat="e4x"/>
<mx:DataGrid x="0" y="0" width="378" height="192"
dataProvider="{dgData}" headerColors="{[0xff0000]}">
<mx:columns>
<mx:DataGridColumn id="colName" headerText="Name"
dataField="name"/>
<mx:DataGridColumn id="colCity" headerText="City"
dataField="city"/>
<mx:DataGridColumn headerText="Phone" dataField="phone"/>
<mx:DataGridColumn headerText="Count" dataField="count"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>