Flex 数据访问 WebService (上)

  Flex 支持格式设置为 SOAP 消息且通过 HTTP 传输的 Web 服务请求和结果。SOAP 提供基于 XML 格式的定义,用于在 Web 服务客户端(如使用 Flex 构建的应用程序)和 Web 服务之间交换结构化和类型化信息。

  在.NET和Flex的数据交互可以通过Web Services访问string,object,datatable,List<>,ArrayList等。

  .NET和Flex的数据示例:

  1、返回对象

  定义返回对象的Web Method:

[WebMethod]

public Employee GetEmployee()

{

return new Employee

{

id = 1,

name = "Shawn",

age = 25

};

}

  Flex前端代码:

<?xml version="1.0" encoding="utf-8"?>

<mx:
Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>

<![CDATA[

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.controls.Alert;

private
function onResult(event:ResultEvent):void

{

Alert.show(event.result.name);

}

private function onFault(event:FaultEvent):void

{

Alert.show("调+event.message);

}

private function GetEmployee():void

{

this.MyService.GetEmployee.send();

}

]]>

</mx:Script>

<mx:Button label="Get Employee" click="GetEmployee()"/>

<mx:WebService id="MyService" wsdl="http://localhost:4081Flex.asmx?WSDL" useProxy="false" result="onResult(event)" fault="onFault(event)">

<mx:operation name="GetEmployee"/>

</mx:WebService>

</mx:Application>

  运行结果:

  2、返回DataTable

  定义返回DataTable的Web Method:

[WebMethod]

public DataTable GetDataTable()

{

DataTable dt = new DataTable("Employees");

dt.Columns.Add("id", typeof(int));

dt.Columns.Add("name", typeof(string));

dt.Columns.Add("age", typeof(int));

DataRow dr = dt.NewRow();

dr["id"] = 1;

dr["name"] = "Shawn";

dr["age"] = 25;

dt.Rows.Add(dr);

dr = dt.NewRow();

dr["id"] = 2;

dr["name"] = "Jack";

dr["age"] = 23;

dt.Rows.Add(dr);

return dt;

}

  Flex前端代码:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>

<![CDATA[

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.controls.Alert;

private function onResult(event:ResultEvent):void

{

}

private function onFault(event:FaultEvent):void

{

Alert.show("调+event.message);

}

private function GetDataTable():void

{

this.MyService.GetDataTable.send();

}

]]>

</mx:Script>

<mx:Panel w
idth="400">

<mx:DataGrid id="gvEmployee" dataProvider="{this.MyService.GetDataTable.lastResult.Tables.Employees.Rows}" width="100%">

<mx:columns>

<mx:DataGridColumn headerText="ID" dataField="id"/>

<mx:DataGridColumn headerText="Name" dataField="name"/>

<mx:DataGridColumn headerText="Age" dataField="age"/>

</mx:columns>

</mx:DataGrid>

<mx:ControlBar>

<mx:Button label="Get DataTable" click="GetDataTable()"/>

</mx:ControlBar>

</mx:Panel>

<mx:WebService id="MyService" wsdl="http://localhost:4081/Flex.asmx?WSDL" useProxy="false" result="onResult(event)" fault="onFault(event)">

<mx:operation name="GetDataTable"/>

</mx:WebService>

</mx:Application> 

  运行结果:

  3、返回List<>

[WebMethod]

public List<Employee> GetEmployeeList()

{

return new List<Employee>

{

new Employee

{

id = 1,

name = "Shawn",

age = 25

},

new Employee

{

id = 2,

name = "Jack",

age = 23

}

};

}

  Flex前端:

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>

<![CDATA[

import mx.collections.Array
Collection;

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.controls.Alert;

private function onResult(event:ResultEvent):void

{

var arr:ArrayCollection = this.MyService.GetEmployeeList.lastResult as ArrayCollection;

gvEmployee.dataProvider=arr;

}

private function onFault(event:FaultEvent):void

{

Alert.show("调+event.message);

}

private function GetEmployeeList():void

{

this.MyService.GetEmployeeList.send();

}

]]>

</mx:Script>

<mx:Panel width="400">

<mx:DataGrid id="gvEmployee" width="100%">

<mx:columns>

<mx:DataGridColumn headerText="ID" dataField="id"/>

<mx:DataGridColumn headerText="Name" dataField="name"/>

<mx:DataGridColumn headerText="Age" dataField="age"/>

</mx:columns>

</mx:DataGrid>

<mx:ControlBar>

<mx:Button label="Get List" click="GetEmployeeList()"/>

</mx:ControlBar>

</mx:Panel>

<mx:WebService id="MyService" wsdl="http://localhost:4081/Flex.asmx?WSDL" useProxy="false" result="onResult(event)" fault="onFault(event)">

<mx:operation name="GetEmployeeList"/>

</mx:WebService>

</mx:Application>

  运行结果:

时间: 2024-09-13 15:07:54

Flex 数据访问 WebService (上)的相关文章

一起谈.NET技术,Flex 数据访问 WebService (上)

Flex 支持格式设置为 SOAP 消息且通过 HTTP 传输的 Web 服务请求和结果.SOAP 提供基于 XML 格式的定义,用于在 Web 服务客户端(如使用 Flex 构建的应用程序)和 Web 服务之间交换结构化和类型化信息. 在.NET和Flex的数据交互可以通过Web Services访问string,object,datatable,List<>,ArrayList等. .NET和Flex的数据示例: 1.返回对象 定义返回对象的Web Method: [WebMethod]p

Flex 数据访问 WebService 使用参数(下)

上一篇介绍Flex的WebService的使用,可以调用多种类型的数据,都是直接调用,没有使用参数,本篇学习使用参数调用WebService,WebService的参数类型可以是:简单类型(如数值,字串串等),简单实体模型(只有属性),比较复杂的实体模型(内陷其他实体),以及集合,XML等. Flex在调用不同后台实现的Web Method方式只是在构造参数有些区别,调用方式是一样的,以下简单介绍Flex调用.NET的Web Method使用不同参数. 定义Web Method用到的类: [Se

一起谈.NET技术,Flex 数据访问 WebService 使用参数(下)

上一篇介绍Flex的WebService的使用,可以调用多种类型的数据,都是直接调用,没有使用参数,本篇学习使用参数调用WebService,WebService的参数类型可以是:简单类型(如数值,字串串等),简单实体模型(只有属性),比较复杂的实体模型(内陷其他实体),以及集合,XML等. Flex在调用不同后台实现的Web Method方式只是在构造参数有些区别,调用方式是一样的,以下简单介绍Flex调用.NET的Web Method使用不同参数.       定义Web Method用到的

Flash/Flex与.NET互操作(二):基于WebService的数据访问(上)

Flex提供了<mx:WebService>.<mx:HTTPService>和<mx:RemoteObject>标签来直接访问远程数据,这用于与各种不同语 言环境开发提供的远程服务端数据源(如WebService)进行数据交互通信显得更加容易. 本文以.NET平台下C#语言开发的WebService作为远程Webservice,详细介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService ,远程调用WebService方法,给WebS

基于WebService的数据访问(上) Flex与.NET互操作(二)_Flex

本文以.NET平台下C#语言开发的WebService作为远程数据源,详细介绍Flex与.NET的WebService的数据通信知识点;包括连接WebService,远程调用WebService方法,给WebService方法传递参数等相关知识点.三个标签的使用方法基本上是一样,这里就以<mx:WebService>标签为例进行介绍. 首先看看如下代码块: 复制代码 代码如下: <mx:WebService id="dataService" wsdl="ht

Flex与.NET互操作(三):基于WebService的数据访问(下)

在上一篇文章<Flex与.NET互操作(二):基于WebService的数据访问(上) >中介绍了通过<mx:WebService>标签来访问Webservice. 实际上我们也可以通过编程的方式动态的访问WebService,Flex SDK为我们提供了WebService类. 使用WebService类来访问WebService其实也就是将<mx:WebService>标签的属性通过类对象的属性形式来表示,相比之下使用 WebService类比使用<mx:We

基于WebService的数据访问(下) Flex与.NET互操作(三)_Flex

使用WebService类来访问WebService其实也就是将<mx:WebService>标签的属性通过类对象的属性形式来表示,相比之下使用WebService类比使用<mx:WebService>标签要灵活.下面我们来看看编程方式怎么连接和调用远程方法: 1     internal function onClick():void2     {3         var service:WebService = new WebService();4         servi

为Silverlight项目创建通用WebService数据访问

在使用Silverlight之前,我们创建了自己的webService做为通用数据访问.开发者传递一个Sql语句 ,即可得到一个DataSet,DataTable作为返回值.在Silverlight项目中,由于其对DataTable的限制,我 们不得不首先得到DataTable,而后在本地再创建Web service(WCF),对得到的DataTable进行转换.转换 为数组或者泛型集合以适应Silverlight的需要. 但是这样做难免有些繁琐,且开发者做出了很多费力的工作. 这里,我们对原来

ASP.NET企业开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)

DataProvider是日常编程中最常用的Provider,它为项目提供了与数据库交互的能力,使程序人员能 够方便.快捷的获得SQL结构,简化了程序代码,增强程序可读性.它共有8个类库,100多个方法,包括 配置.功能和枚举三部分,以下是它的基本类关系: 开发框架IsLine FrameWork系列之四--DataProvider 数据访问(上)-"> 图3.4公共接口 图3.5文件操作 图3.6 数据库操作与数据容器接口