Flex3 remoting通讯 读取数据库数据
昨天说了flex与.net的remoting通讯,今天尝试了一下读取数据库数据内容,简单做了个范例.
Flex客户端程序
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.controls.ComboBox;
import mx.events.DropdownEvent;
private function RemoteResult(re:ResultEvent):void
{
switch(re.currentTarget.name)
{
case "getRankCount":
var str:String = re.result as String;
setupComboBox(uint(str))
break;
case "getRankTop":
dg.enabled=true;
setupDataGrid(re.result.Table.serverInfo)
break;
}
}
//
private function RemoteFault(re:FaultEvent):void
{
Alert.show("Message:" re.fault.faultString,"出错");
}
//设置comboBox数据
private function setupComboBox(nums:uint):void {
cb.enabled=true;
var cbArray:Array=new Array()
for (var i:uint=0;i<nums;i ){
cbArray.push({label:i 1,data:i 1});
}
cb.dataProvider=cbArray;
//设定选取后数据动作
cb.addEventListener(Event.CHANGE, cardSelected);
}
//cb数值改变后连接数据库,执行服务器端方法,读取数据
private function cardSelected(e:Event):void{
service.getRankTop(e.currentTarget.value as uint);
}
//设置gd
private function setupDataGrid(Obj:Object):void{
var titleArray:Array=Obj.columnNames as Array
var initialDataArray:Array=Obj.initialData as Array
var dgArray:Array=new Array()
for (var i:uint=0;i<initialDataArray.length;i ){
var dgObj:Object=new Object()
for (var j:uint=0;j<titleArray.length;j ){
var tmp:String=titleArray[j].toString()
dgObj[tmp]=Obj.initialData[i][j];
}
dgArray.push(dgObj)
}
dg.dataProvider=dgArray;
}
]]>
</mx:Script>
<mx:RemoteObject
id="service"
destination="fluorine"
source="remoting.Sample"
showBusyCursor="true" >
<!--这里是.NET中的方法,name = 方法名 -->
<mx:method name="getRankCount" result="RemoteResult(event)" fault="RemoteFault(event)"/>
<mx:method name="getRankTop" result="RemoteResult(event)" fault="RemoteFault(event)"/>
</mx:RemoteObject>
<mx:Button id="getRankCountBtn" label="连接数据库" click="service.getRankCount()" fontSize="14"/>
<mx:ComboBox id="cb" prompt="取前几条数据" fontSize="14" width="138" enabled="false"/>
<mx:DataGrid id="dg" enabled="false" />
</mx:Application>
.net服务器端
代码就不写了,一共2个方法,一个方法用来获取数据总条数,一个用来根据数量获取数据记录集.
总结:
这个范例用到了动态生成ComboBox与DataGrid,需要解析.net返回回来的DataSet类型.

浙公网安备 33010602011771号