最近对Flex有了兴趣,做了一个绑定,但是总是没数据,原来是定义变量arrayCollection时没有加[Bindable]元数据绑定指令。
<mx:Application creationComplete="init()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientAlphas="[1.0, 0.0]" width="524" height="392"
initialize="employeeServices.send()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
//定义一个数据集合
[Bindable]
private var employeeData:ArrayCollection;
//httpservices要调用的方法
private function resultHandler(e:ResultEvent):void{
employeeData=e.result.employees.employee;
}
]]>
</mx:Script>
<!-- 使用HttpServices -->
<mx:HTTPService id="employeeServices" url="data/employee.xml" result="resultHandler(event)"/>
<!-- 绑定到employeeData -->
<mx:DataGrid x="34" y="177" dataProvider="{employeeData}">
<mx:columns>
<!-- 指定列名与每一列绑定的字段-->
<mx:DataGridColumn headerText="ID" dataField="id"/>
<mx:DataGridColumn headerText="FirstName" dataField="firstname"/>
<mx:DataGridColumn headerText="LastName" dataField="lastname"/>
<mx:DataGridColumn headerText="Title" dataField="title"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
对应的xml文件位于src/data/employee.xml
<?xml version="1.0"?>
<employees>
<employee>
<firstname>Renee</firstname>
<lastname>Diebiss</lastname>
<id>01</id>
<title>president</title>
</employee>
<employee>
<firstname>Candy</firstname>
<lastname>James</lastname>
<id>02</id>
<title>president</title>
</employee>
<employee>
<firstname>Menee</firstname>
<lastname>Fiebiss</lastname>
<id>03</id>
<title>president</title>
</employee>
<employee>
<firstname>Venee</firstname>
<lastname>Hiebiss</lastname>
<id>04</id>
<title>president</title>
</employee>
</employees>