Hello and thanks in advance for any help you can provide this flex newbie. I'm trying to create a simple AdvancedDataGrid that displays XML data from a web service I wrote. The XML file looks like:
<dashboard> <rollup> <period>2008-12-03 01:00:00</period> <period_sse>1228266000</period_sse> <country> <ccode>PH</ccode> <detects>1</detects> </country> <country> <ccode>GB</ccode> <detects>50</detects> </country> </rollup> <rollup> <period>2008-12-04 03:00:00</period> <period_sse>1228359600</period_sse> <country> <ccode>PH</ccode> <detects>18</detects> </country> </rollup> </dashboard> My Flex 3 MXML app is: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import mx.controls.Alert; [Bindable] public var dataServiceURL:String = "http://dashboard-dev/cgi-bin/dataService.pl?type=countrystats"; [Bindable] public var chartValues:ArrayCollection; public function init():void { countries_rpc.send(); } public function handle_xml(event:ResultEvent):void { var xmlData:XML = event.result as XML; var newData:Array = parseXmlToArray(xmlData); chartValues = new ArrayCollection(newData); } public function handle_fault(event:FaultEvent):void { Alert.show(event.fault.faultString, "Error"); } private function parseXmlToArray(xmlData:XML):Array { var newData:Array = new Array(); for each (var rollup:XML in xmlData.rollup) { var carray:Array = new Array(); for each (var country:XML in rollup.country) { carray.push({ ccode: country.ccode, detects: country.detects }); } carray.sortOn("ccode"); newData.push({ period: rollup.period, period_msse: rollup.period_sse*1000, children: carray }); } newData.sortOn("period_msse"); return newData; } ]]> </mx:Script> <mx:HTTPService id="countries_rpc" url="{dataServiceURL}" result="handle_xml(event);" fault="handle_fault(event);" resultFormat="e4x" /> <mx:AdvancedDataGrid id="countrystatgrid" width="50%" height="50%"> <mx:dataProvider> <mx:HierarchicalData source="{chartValues}" /> </mx:dataProvider> <mx:columns> <mx:AdvancedDataGridColumn dataField="period" /> <mx:AdvancedDataGridColumn dataField="ccode" /> <mx:AdvancedDataGridColumn dataField="detects" /> </mx:columns> </mx:AdvancedDataGrid> </mx:Application> When I run this the AdvancedDataGrid is displayed but no data is shown. In the debugger, I can see chartValues and the data from the webservice appears to be correctly stuffed into it. Can anyone point me in the right direction? Thanks! Todd