Flex与webServices交互传递数据

    为了在应用程序中使用数据,Adobe Flex 包括了与HTTP servers,web services 或remoteobject services
(Java objects)进行交互的组件,这些组件被称之为远程过程调用(RPC)服务组件。
    与 Adobe ColdFusion,PHP 或类似的服务器技术不同,Flex 应用程序并不直接连接数据
库。举个例子,你可以在一个Flex 文件中插入HTTP service 来实现与ColdFusion 文件的交
互,以获取MySQL 数据库中的数据,转换成XML,然后返馈给Flex 应用程序。

本篇主要讲述Flex与webServices交互传递数据的过程。

1、webService程序的编写及发布服务
    webService的原理及概念可参考http://blog.csdn.net/mocklystone/archive/2010/02/24/5322436.aspx。

    webService的编写与平常程序的编写一样,只是他是一个web服务类型,并且在方法上需要添加[WebMethod]来

标识。

A、返回DataTable类型

示例:

  

该函数返回的是一个DataTable类型数据,但在函数中为什么要使用一个DataSet来封装,不是多此一举吗?其实不然,webservice为将这个函数解析成Wsdl(也就是xml形式的一个描述文档),且返回的数据也是解析成xml格式的,所以不管什么类型都需要序列化然后转换成xml,庆幸的是.net有封装对基本类型及一些常用类型的序列化。可这些类型中并没有包含DataTable,但却支持DataSet,所以通过封装成DataSet,再将其中的DataTable数据返回去,就可以转换成xml格式了。

 

B、返回泛型List<T>的数据类型

示例:

User是自定义的类

C、一般数据类型

示例:

文件编写完后进行发布,发布到IIS6中的Test虚拟目录下,供下面Flex调用,如何发布就不再详述了。

2、Flex请求WebService服务

Flex中有提供WebService组件及httpService组件,来对相应服务发送请求及接收数据。

A、Webservice组件定义及触发事件

通过一个按钮Button来触发调用webService请求的事件

这边的"http://localhost/test/LoginService.asmx?WSDL"即为本地发布的webService的地址,即发布在IIS中Test的虚拟目录下。

<mx:operation>中的name属性里的值就是所需要调用Webservice的方法名,result属性即定义接收到数据后所要执行的函数。

 

有需要发送参数的定义方法

其中{txtUserName.text}与{txtUserPwd.text}即为需要传递的参数,这是两个文本编辑框的值的表示方式

B、发送WebService请求

示例:

3、Flex解析WebService返回的数据(重点讲述此方法)

重点讲述DataTable数据绑定及泛型List<T>数据绑定

示例:

dg_UserList是Flex中的DataGrid控件,将数据绑定掉这个控件上,然后将此DataTable中的列名设置到DataGrid中的Datafiled即可显示。

解析上述的给Dg_UserList绑定数据时为何使用dg_UserList.dataProvider=event.result.Tables.UserList.Rows

这个没有固定写法,要根据以下方法调试方能编写完全。

event.result就是从WebService中的GetUserList中获得的数据,类型为DataTable,DataTable名称为"UserList"

    首先,在请求WebService的函数中设置断点(即在RequestWebService.GetUserList.send();这个地方设置断点)

然后调试该Flex程序,当点击了button后可以通过断点查看出返回结果的格式!然后我们就可以根据这个格式设置DataGrid的dataProvider属性了。如下图所示

 

Flex程序调试需要flash play调用版本9.0以上方可使用
详细源代码下载地址:http://download.csdn.net/source/2075535

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值