protected function button11_clickHandler(event:MouseEvent):void
{
if(!b_addlistener) //防止多次添加侦听器。
{
b_addlistener=!b_addlistener;
//trace("111");
httpsvc1.url="http://localhost:8080/geoserver/test.xml";
httpsvc1.method="POST";
httpsvc1.addEventListener(ResultEvent.RESULT,function success(event:ResultEvent):void
{
var head:ArrayCollection=new ArrayCollection();
//1.表头控制
//读取记录集字段名
var rs_head:ArrayCollection=new ArrayCollection();
if(event.result.rs.head.row is ObjectProxy)
{
rs_head.removeAll();
rs_head.addItem(event.result.rs.head.row);
}
else
rs_head=event.result.rs.head.row;
//动态生成grid表头列
var j:int;
Alert.show(rs_head[0].col.length.toString());
if(rs_head.length<=0)
{
Alert.show("没有数据");
return;
}
else
{
for(j=0;j<rs_head[0].col.length;j++)
{
var gridcol:GridColumn=new GridColumn();
gridcol.headerText=rs_head[0].col[j].toString();
gridcol.dataField=rs_head[0].col[j].toString();
gridcol.width=100;
head.addItem(gridcol);
}
}
grid1.columns=head;
//2.数据绑定
//读取记录集数据
//!!!如果event.result.rs.data.row只有1个row对象(xml中只有一组row),得到的是proxy类型
//...如果有多个row对象(xml中有多组row),得到的是arraycollection
//!!!另外_rs的每一行的某列并不是_rs[i][j]来访问,而是_rs[i].col[j]来访问。 col是xml中row的子标签。
//...这个可以用调试模式,断点下查看_rs变量结构看到。
var _rs:ArrayCollection=new ArrayCollection();
if(event.result.rs.data.row is ObjectProxy)
{
_rs.removeAll();
_rs.addItem(event.result.rs.data.row);
}
else
_rs=event.result.rs.data.row;
//形成标准dataprovider格式,显示到grid中。
var dp:ArrayCollection=new ArrayCollection();
var i:int;
for(i=0;i<_rs.length;i++)
{
//Alert.show(_rs[i].col[0].toString());
var dp_item:Object=new Object();
dp_item.username=_rs[i].col[0].toString();
dp_item.pwd=_rs[i].col[1].toString();
dp_item.time=_rs[i].col[2].toString();
dp.addItem(dp_item);
}
//row.username="";
grid1.dataProvider=dp;
});
httpsvc1.addEventListener(FaultEvent.FAULT,function fail(event:FaultEvent):void
{
Alert.show(event.fault.toString());
});
}
httpsvc1.send();
}
<s:HTTPService id="httpsvc1" url="http://localhost:8080/geoserver/test.xml" method="POST" >
</s:HTTPService>
<s:DataGrid id="grid1" x="72" y="301">
</s:DataGrid>
test.xml
<rs>
<head>
<row>
<col>username</col>
<col>pwd</col>
<col>time</col>
</row>
</head>
<data>
<row>
<col>aa1</col>
<col>bb1</col>
<col>cc1</col>
</row>
<row>
<col>aa2</col>
<col>bb2</col>
<col>cc2</col>
</row>
<row>
<col>aa3</col>
<col>bb3</col>
<col>cc3</col>
</row>
</data>
</rs>