例子:对于一个DataGrid控件的数据源
1、result.toString()=
<?xml version="1.0" encoding="UTF-8"?>
<adminManagers>
<admin><name>merry</name><pwd>iam</pwd></admin>
<admin><name>sdf</name><pwd>sfg</pwd></admin>
</adminManagers>
2、var xmlObj:XML=new XML(result.toString());
<adminManagers>
<admin><name>merry</name><pwd>iam</pwd></admin>
<admin><name>sdf</name><pwd>sfg</pwd></admin>
</adminManagers>
3、xmlObj.children()=
<admin><name>merry</name><pwd>iam</pwd></admin>
<admin><name>sdf</name><pwd>sfg</pwd></admin>
4、myDg.dataProvider=xmlObj.children();
5、<mx:DataGridColumn headerText="Admin Name"
dataField="name"/>
**************************************************************************
第二种情况 也是对于一个DataGrid控件的数据源
1、result.toString=
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<sipAccount>sip:hill@ocp.gz.com</sipAccount>
<extension>sip:8190@ext.protel.com.hk</extension>
<action>
<outgoing>
<sipPhoneAddr code="1">sip:1@ext.protel.com.hk</sipPhoneAddr>
<sipPhoneAddr code="11">sip:11@ext.protel.com.hk</sipPhoneAddr>
</outgoing>
</action>
</rule>
2、xml:XMLList=XMLList(event.result as String);
<rule>
<sipAccount>sip:hill@ocp.gz.com</sipAccount>
<extension>sip:8190@ext.protel.com.hk</extension>
<action>
<outgoing>
<sipPhoneAddr code="1">sip:1@ext.protel.com.hk</sipPhoneAddr>
<sipPhoneAddr code="11">sip:11@ext.protel.com.hk</sipPhoneAddr>
</outgoing>
</action>
</rule>
3、xml1:XMLList=xml[0].action[0].outgoing[0].sipPhoneAddr;
<sipPhoneAddr code="1">sip:1@ext.protel.com.hk</sipPhoneAddr>
<sipPhoneAddr code="11">sip:11@ext.protel.com.hk</sipPhoneAddr>
4、xml.extension[0]=
sip:8190@ext.protel.com.hk
5、for (var i:int=0; i < xml1.length(); i++)
{
var obj:Object=new Object();
var arr:ArrayCollection=new ArrayCollection();
obj.sipPhoneAddr=xml1[i]; //值为xml节点的值sip:1@ext.protel.com.hk、sip:11@ext.protel.com.hk
obj.code=xml1[i].@code; //值为xml属性的值1、11
arr.addItem(obj); //addItem添加的对象是object类型
}
注:创建Object的方法很简单, 你可以使用new操作符定义一个Object,如下所示:
var obj:Object = new Object();
obj.name = “flex”;
obj.version = “2”;
这里,我们生成了一个新Object对象obj,它有两个属性name和version。当然,我们也可以通过赋初值的方式直接定义Object对象:
var obj:Object = {name: ”flex”, version: “2”}
注:Array中可以存放多种数据类型 ,包括数字、字符串、对象或者是其他Array。请记住,Array对象的拷贝方式是引用拷贝而非值拷贝。因此当你将一个Array变量赋给另一个Array变量时,这两个变量将指向同一个Array。
var array1:Array = new Array();
var array2:Array = new Array(“a”, “b”, “c”);
var array3:Array = [“a”, “b”, “c”];
可以插入各种对象类型数据,但不能插入数组。用push方法
var items:Array = new Array();
items.push({label: "Flex" ,data:1});
items.push({label: "Ext" ,data:2});
items.push({label: "JBPM" ,data:3});
你可以使用for循环遍历一个数组:
for(var i:int = 0; i < array3.length; i++) {}
注:ArrayCollection如何在程序中使用
private var coll:ArrayCollection ;
arr:ArrayCollection = new ArrayCollection(
[
{code:1, sipPhoneAddr:"bbb "},
{code:11, sipPhoneAddr:"aaa "}
]
);
1、要插入元素,可使用addItemAt和addItem:
arr.addItemAt ({code:22, sipPhoneAddr:"ssss"}, 0);
arr.addItem ({code:33, sipPhoneAddr:"aaa"});
2、要取得它里面的值用arr.getItemAt (i).code
3、ArrayCollection和Object类型的转换
var obj:Object = new Object();
obj.name = “flex”;
obj.version = “2”;
var obj:Object = {name: ”flex”, version: “2”}
var arr:ArrayCollection=new ArrayCollection();
arr.addItem(obj); //可见Array和ArrayCollection都可以添加Object类型数据
4、它经常用来批量添加Objec类型的数据,如以下一个批量删除选中数据例子
var mySelectedItem:Array=myDg.selectedItems;
var myRemoveData=new ArrayCollection();
for each (var item:Object in mySelectedItem) ///注意这里又是Array和Object的转换
{
myRemoveData.addItem(item);
}
for (var i:int=0; i < myRemoveData.length; i++)
{
getAdminInfoWs.deleteAdminByAdminName(mySelectedItem[i].name) //根据name属性来删除
u=i+1;
}
6、 <mx:DataGrid id="myDg" dataProvider="{arr}">
<mx:columns>
<mx:DataGridColumn headerText="CODE" dataField="code"/>
<mx:DataGridColumn headerText="Address" dataField="sipPhoneAddr"/>
</mx:columns>
</mx:DataGrid>
*******************************************************************************
DataGrid所可使用的数据源
1、private var _record:XML=<list>
<user name="小明" result="60"></user>
<user name="小红" result="59"></user>
<user name="小白" result="75"></user>
<user name="小黑" result="38"></user>
<user name="小青" result="80"></user>
<user name="小文" result="100"></user>
<user name="小鬼" result="99"></user>
<user name="小东" result="40"></user>
</list>
2、<ns1:MyDataGrid dataProvider="{_record.user}"
right="5"
left="5"
top="5"
bottom="5">
<ns1:columns>
<mx:DataGridColumn headerText="姓名"
dataField="@name"/>
<mx:DataGridColumn headerText="成绩"
dataField="@result"/>
</ns1:columns>
</ns1:MyDataGrid>
*****************************************************************************
1、现有private var xml:XML
如果要取得 “黄金葫芦 ”
则可以:xml.children().(@id==“2”)[0].name