DataGrid 数据源XML的实例(Tested)
需要注意:
1、XMLList 等价 XML
2、 dg.dataProvider =myBooks.item; 需要在写在程序内,表格才有数据,写在MXML
<mx:DataGrid id="dg" dataProvider =myBooks.item> 表格内不出数据,原因可能是creationComplete的原因。
<?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.controls.Alert;
[Bindable] public var a:XMLList;
[Bindable] public var b:XMLList;
[Bindable] public var c:XMLList;
[Bindable] public var d:XMLList;
[Bindable] public var e:XMLList;
[Bindable] public var f:XMLList;
private var myBooks:XMLList;
private function init():void
{
//创建URLRequest类,用于接收XML信息;
var url:URLRequest=new URLRequest("myBooks.xml");
//创建URLLoader类,用于加载XML信息;
var loader:URLLoader=new URLLoader();
//加载完成时运行处理xml函数
loader.addEventListener(Event.COMPLETE, dealXml);
loader.load(url);
}
private function dealXml(event:Event):void
{
var loader:URLLoader=event.target as URLLoader;
myBooks=new XMLList(loader.data);
this.testComb.dataProvider=myBooks.item;
this.testComb.labelField="id";
// An XML list that contains both book nodes.
a = myBooks.item;
// Keith Peters
b = myBooks.item[0].id;
e = myBooks.user;
f = myBooks.user.@name;
dg.dataProvider =myBooks.item;
}
]]>
</mx:Script>
<mx:Panel
title="XML lookup results"
paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10" width="495" height="486">
<mx:Text text="{'a: ' + a}" width="300"/>
<mx:Label text="{'b: ' + b}"/>
<mx:Label text="{'e: ' + e}"/>
<mx:Label text="{'f: ' + f}"/>
<mx:ComboBox id="testComb"/>
<mx:DataGrid id="dg">
<mx:columns>
<mx:DataGridColumn headerText="id11" dataField="id"/>
<mx:DataGridColumn headerText="value" dataField="value"/>
<mx:DataGridColumn headerText="Column 3" dataField="col3"/>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>
myBooks.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
<item>
<id>item1</id>
<value>v1</value>
</item>
<item>
<id>item2</id>
<value>v2</value>
</item>
<user name="zfs2" sex="男">zhaofusheng2</user>
</root>