Username: Password:

ASP.NET 2.0 Ajax:调用Web Service[3]
来源:作者: 发布时间:2008-05-07 08:22:30

    ??此文章摘自《ASP.NET AJAX程式设计:第II卷(客户端)》定价:55元 特价:41.25元 购买>>

  接下来即可用ASP.NET AJAX异步调用这个Web Service了。首先新建一个ASP.NET页面。当然,该页面所在的Web站点必须已配置好了ASP.NET AJAX的支持,周详配置方法请参考本书第Ⅰ卷。在该页面上添加一个ScriptManager服务器端控件,这是每一个ASP.NET AJAX应用程式都必不可少的:

  为了让ASP.NET AJAX为前面的Web Service生成客户端异步调用代理,我们需要在Script- Manager控件中添加该Web Service的引用:

  这种声明语法隐约中传递了这样的含义:Web Service的客户端异步调用代理脚本将由ScriptManager控件管理??这很自然,不是吗?ScriptManager就是用来管理(manage)脚本(script)的呀!关于标签连同标签的周详使用方法,在本书第Ⅰ卷中已有周详讨论,这里不赘。

  随后声明程式界面中必不可少的UI元素:
  onclick="return btnInvoke_onclick()" />

  其中id为tbName的 作为文本框,用来让用户输入名字;id为btnInvoke的作为按钮,点击将触发异步调用Web Service;id为result的

  则用来将Web Service返回的问候内容显示出来。这些id均将在稍后用到。

  上面代码中btnInvoke按钮定义了click事件的事件处理函数,该函数的实现如下。注意这是客户端JavaScript代码:
  function btnInvoke_onclick() {
  var theName = $get("tbName").value;
  SimpleWebService.SayHello(theName, onSayHelloSucceeded);
  }

  首先用$get ("tbName").value取得了用户在文本框中输入的文字。然后第二句Simple- WebService.SayHello()即调用了ASP.NET AJAX异步通信层自动为SimpleWebService生成的客户端代理。这是本示例程式中最为重要的一句??和用C#在Web Service中声明的SayHello()方法签名相比,其参数个数连同顺序均完全相同,甚至调用语法也没什么特别之处,都是[NameSpace]. [ClassName].[MethodName](param1,param2,...,callbackFunction)。由此我们能够看出 ASP.NET AJAX异步通信层为降低研发者学习曲线、提高研发者生产效率所做出的努力及良苦用心。

  关于用来取得DOM元素引用的$get()方法,请参考本卷第1章中的介绍。

  客户端代理还提供了额外的一个参数??异步调用的回调函数名称,这里为onSayHelloSu- cceeded。该回调函数将在服务器端异步调用成功返回后由ASP.NET AJAX异步通信层自动调用。onSayHelloSucceeded()回调函数的代码如下:
  function onSayHelloSucceeded(result) {
  $get("result").innerHTML = result;
  }

[1]  [2]  [3]  [4]  

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅