波斯马BOSSMA Information Technology

Flex调用WebService[asp.net]

发布时间:2008年6月18日 / 分类:Flex / 10,858 次浏览 / 评论

互联网的变化,真是风起云涌,我似乎永远都赶不上时代的潮流。
不过这次我想介绍点新鲜的东西,有人说网络会终结全部的桌面软件,这就是RIA,好像是Rich Internet Application的简写。
Flex就是这样一个工具,帮助我们开发RIA,提供丰富的用户交互。
偶前几日用flex做了一个小测试,调用asp.net的WebService.
具体需求如下:
提供一个界面,用来查询某个班级的学生信息。
学生信息表字段:学号、姓名

我这个程序是改写了一个调用Yahoo图片的应用。

看看怎么实现的吧。
1、主程序文件

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
?backgroundGradientColors="[0xFFFFFF, 0xAAAAAA]"
?horizontalAlign="left"
?verticalGap="15" horizontalGap="15">

??? <mx:Script>
??????? <![CDATA[
??????????? import mx.collections.ArrayCollection;
??????????? import mx.rpc.events.ResultEvent;

??????????? //声明一个ArrayCollection,用于存放读取出来的学生信息
??????????? [Bindable]
??????????? private var photoFeed:ArrayCollection;

??????????? //这个方法用来处理WebService返回的数据,也就是放到上边声明的数组中
??????? //因为我的WebService返回的是一个DataSet,可以看到这样一个目录结构:Tables.ds.Rows
??????????? private function photoHandler(event:ResultEvent):void {
??????????????? photoFeed = event.result.Tables.ds.Rows as ArrayCollection;
??????????? }
???????? ]]>
??? </mx:Script>

<!--调用的WebService
wsdl属性声明了一个路径和格式
result属性声明了用来处理结果的方法
operation声明了请求的WebService方法
strWhere是接口的参数名称
searchTerms.text是要查询的字符串
-->
<mx:WebService id="StudentService" wsdl="http://localhost:2056/WebServiceTest/GetStudentList.asmx?WSDL" useProxy="false" result="photoHandler(event)">
<mx:operation name="Get">
<mx:request>
<strWhere>{searchTerms.text}</strWhere>
</mx:request>
</mx:operation>
</mx:WebService>

?<mx:HBox>
??<mx:Label text="Flickr tags or search terms:" />
??<mx:TextInput id="searchTerms" />
<!--按钮的click事件,发送了WebService请求-->
??<mx:Button label="Search" click="StudentService.Get.send();" />
?</mx:HBox>
<!--
这里使用TileList显示查询返回的结果
dataProvider用来绑定数据源
我们在点击按钮查询的之后,无需再绑定一遍数据,这是如何实现的呢,有点搞不明白
这里用到了itemRenderer,可以自定义结果显示的方式,有点类似于.net中的模版控件,下面会介绍
-->
?<mx:TileList width="100%" height="100%"
??dataProvider="{photoFeed}"
??itemRenderer="StudentItem"? direction="vertical">
?</mx:TileList>
</mx:Application>

2、显示Item控件
使用这种方式绑定数据:{data.stu_no}

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="300" height="30">
?<mx:Label text="{data.stu_no}" /><mx:Label text="{data.stu_name}" />
</mx:HBox>

3、再看看WebService是怎么写的。
就是查询出来数据,绑定到DataSet,然后返回
.net会帮我们自动构建XML

  [WebMethod]
    public DataSet Get(string strWhere)
    {
        StringBuilder strSql = new StringBuilder();
        strSql.Append("select * ");
        strSql.Append(" FROM student ");
        if (strWhere.Trim() != "")
        {
            strSql.Append(" where stu_course = '" + strWhere+"'");
        }
        return dbHelper.Query(strSql.ToString());
    }

OK,这个就是这么简单!欢迎大家多提点建议!

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《Flex调用WebService[asp.net]

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论