`
izuoyan
  • 浏览: 9223710 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ASP.NET 2.0 AJAX中Webservice调用方法

阅读更多

  ASP.NET 2.0 Ajax中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX

  版本为AJAX November CTP。

  三个示例分别为:

  1 带参数的WS方法

  2 不带参数的WS方法

  3 参数类型为DataTable的WS方法

  一、WebMethod

  注意要点:

  1 WebMethod类需要添加命名空间 Microsoft.Web.Script.Services,此空间需要引用Microsoft.Web.Preview.dll

  2 类声明加入标签 [ScriptService]

  3 在Asp.net 2.0里可以直接用DataTable作为返回类型了,但是需要在Web.config文件添加序列化转换器的属性。DataSet、DataTable、DataRow均有转换器

  

< system.web.extensions>

  < scripting>

  < webServices>

  < jsonSerialization>

  < converters>

  < add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview"/>

  < add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview"/>

  < add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview"/>

  < /converters>

  < /jsonSerialization>

  < /webServices>

  < /scripting>

  < /system.web.extensions>

WEB服务1:WS1

using System;

  using System.Web;

  using System.Collections;

  using System.Web.Services;

  using System.Web.Services.Protocols;

  using Microsoft.Web.Script.Services;

  using System.Data;

  /**////

  /// WS1 的摘要说明

  ///

  [WebService(Namespace = "http://tempuri.org/")]

  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

  [ScriptService]

  public class WS1 : System.Web.Services.WebService {

  public WS1 () {

  //如果使用设计的组件,请取消注释以下行

  //InitializeComponent();

  }

  [WebMethod]

  public string ServerTime()

  {

  return String.Format("now: {0}", DateTime.Now);

  }

  [WebMethod]

  public DataTable GetDataTable()

  {

  DataTable dt = new DataTable("Person");

  dt.Columns.Add(new DataColumn("Name", typeof(string)));

  dt.Columns.Add(new DataColumn("LastName", typeof(string)));

  dt.Columns.Add(new DataColumn("Email", typeof(string)));

  dt.Rows.Add("kui", "he", "hekui168@163.com");

  dt.Rows.Add("ren", "chao", "chaoren888@163.com");

  return dt;

  }

  }

WEB服务2:WS

using System;

  using System.Web;

  using System.Collections;

  using System.Web.Services;

  using System.Web.Services.Protocols;

  using Microsoft.Web.Script.Services;

  /**////

  /// WS 的摘要说明

  ///

  [WebService(Namespace = "http://tempuri.org/")]

  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

  [ScriptService]

  public class WS : System.Web.Services.WebService {

  public WS () {

  //如果使用设计的组件,请取消注释以下行

  //InitializeComponent();

  }

  [WebMethod]

  [ScriptMethod(UseHttpGet = true)]

  public string HelloWorld(String query)

  {

  string inputString = Server.HtmlEncode(query);

  if (!String.IsNullOrEmpty(inputString))

  {

  return String.Format("hello, {0}. ", inputString);

  }

  else

  {

  return "query string is null or empty";

  }

  }

  }

二、前台页面:

  注意要点:

  需要使用的后台WebService的方法均设置在如下位置

  Default页面:

  三、JavaScript程序:

  注意要点:

  AJAX November CTP 需要用 eval() 方法将其转换成一个DataTable对象(并且要裁掉最前面的"("),而AJAX December CTP 支持以下方法转换“Sys.Preview.Data.DataTable.parseFromJson(result)”

  

function dd()

  {

  WS.HelloWorld(

  'hekui',

  function(result)

  {

  alert(result);

  }

  );

  WS1.ServerTime(

  function(result)

  {

  alert(result);

  var divTime = document.getElementById("time");

  divTime.innerHTML = result;

  }

  );

  WS1.GetDataTable(

  function(result)

  {

  // 获取到下拉框控件

  var List = document.getElementById("ddl1");

  //AJAX November CTP 需要用 eval() 方法将其转换成一个DataTable对象(并且要裁掉最前面的"(")

  var Text= result.dataArray.substring(0,result.dataArray.length -1);

  var Table = eval( Text);

  //AJAX December CTP 支持以下方法转换

  // var Table = Sys.Preview.Data.DataTable.parseFromJson(result);

  //清除下拉框原有列表项

  for (x=List.options.length-1; x > -1; x--)

  {

  List.remove(0);

  }

  //从获取的DataTable添加数据到下拉框列表项

  for (x=0; x < Table.length; x++ )

  {

  //获取每一行

  var Row = Table[x];

  //创建一个列表项

  var option = document.createElement("option");

  //列表项显示文本赋值

  option.text = Row.Name + " " + Row.LastName;

  //列表项选项值赋值

  option.value = Row.Email;

  //判断浏览器类型,进行项目添加

  if ( window.navigator.appName.toLowerCase().indexOf("microsoft") > -1)

  List.add(option);

  else

  List.add(option, null);

  }

  }

  );

  }

分享到:
评论

相关推荐

    asp.net2.0 调用websevice 实现天气预报

    在本项目中,“asp.net2.0 调用websevice 实现天气预报”,我们将探讨如何利用ASP.NET 2.0集成Web服务(Web Service)来获取并展示实时天气信息,从而实现一个无刷新的天气预报应用。 首先,Web服务是一种基于XML的...

    ASP.NET 2.0全程指南(程序)

    通过这个“ASP.NET 2.0全程指南”的源代码学习,读者不仅可以了解ASP.NET 2.0的基础知识,还能深入理解Web Forms的开发模式,掌握数据绑定、用户认证、角色管理、AJAX技术以及配置和部署的实践方法。对于想要提升ASP...

    【ASP.NET编程知识】asp.net类库中添加WebService引用出现问题解决方法.docx

    ASP.NET 类库中添加 WebService 引用出现问题解决方法 在 ASP.NET 编程中,添加 WebService 引用的问题是常见的错误之一。本文将详细介绍在 ASP.NET 类库中添加 WebService 引用的解决方法,并对相关的知识点进行...

    【ASP.NET编程知识】ASP.NET如何定时调用WebService服务.docx

    本文为 ASP.NET 开发者提供了一种简单而有效的方法来实现定时调用 WebService 服务,并且还介绍了使用 jQuery 和 Ajax 调用 WebService 服务的方法。 知识点: * 使用 System.Timers.Timer 组件来实现定时调用 ...

    Asp.net利用ScriptManager调用webservice

    在Asp.net开发中,有时候我们需要在客户端与服务器端之间进行异步通信,这时Web服务(Web Service)和Ajax技术就显得尤为重要。本示例主要介绍如何在Asp.net环境中,利用ScriptManager组件来调用Web服务,实现客户端...

    asp.net+jquery+ajax所有调用例子

    通过在ASP.NET页面中添加UpdatePanel,并配置触发器,我们可以实现后台方法的AJAX调用。例如,一个简单的ASP.NET AJAX调用aspx页面的方法可能如下: ```asp.net &lt;asp:ScriptManager ID="ScriptManager1" runat=...

    ASP.NET AJAX深入浅出系列课程(4):客户端访问WebService(上):基本使用方式

    在客户端访问WebService时,ASP.NET AJAX利用ScriptManager控件来注册WebService,并生成JavaScript代理,使得在JavaScript中可以方便地调用WebService的方法。 课程中可能会涵盖以下关键知识点: 1. **创建...

    asp.net手写ajax调用后台方法

    本篇文章将深入探讨如何在ASP.NET中手写AJAX调用后台方法。 首先,理解AJAX的核心原理是关键。它允许浏览器异步与服务器通信,无需刷新整个页面即可获取或更新数据。在ASP.NET中,我们可以利用JavaScript库,如...

    ASP.NET中jQuery调用WebService处理返回结果的方式

    在ASP.NET中,jQuery调用WebService进行异步通信时,主要通过jQuery的ajax方法实现。处理返回结果的关键在于理解返回数据的类型和对应的处理方式。对于返回字符串、数组或复杂对象,WebMethod可以通过设置不同的返回...

    ASP.NET 3.5 AJAX服务器编程精选71例(使用C#)

    `CH5`和`CH6`可能涉及更复杂的AJAX功能,比如使用WebService或PageMethods进行服务器端调用,以及自定义控件和扩展AJAX功能的方法。 `BuildDemo.bat`是一个批处理文件,可能用于自动构建和运行这些示例,这对于快速...

    Asp.Net的webService简单示例

    本示例主要展示了如何在C#中创建一个简单的Web服务,并利用jQuery进行调用,以及如何返回自定义的JSON数据,而非依赖ASP.NET默认的`{d:content}`格式。 首先,创建一个新的ASP.NET Web服务项目。在Visual Studio中...

    jQuery与ASP.NET打造AJAX技术

    **jQuery访问WebService**:jQuery的$.ajax()方法是与ASP.NET WebService进行交互的主要工具。Web Service通常是以.asmx为扩展名的文件,提供XML或JSON格式的数据。通过设置URL、type(GET或POST)、dataType(如...

    ASP.NET AJAX全国省市县三级联动.doc

    2. 在这个示例中,主要使用了ASP.NET AJAX的控件工具包(AjaxControlToolkit),这是一个包含多种服务器控件和客户端脚本库的集合,简化了实现AJAX功能的过程。`cc1:CascadingDropDown`控件是这个工具包的一部分,...

    一个基于AJAX +ASP.NET 实现的客户端调用后台WebService服务方法程序代码

    标题中的“一个基于AJAX +ASP.NET 实现的客户端调用后台WebService服务方法程序代码”表明这个项目是关于使用AJAX技术与ASP.NET框架结合,实现在网页端无刷新地调用后台Web服务的方法。AJAX(Asynchronous ...

    .net上ajax的实例

    .NET中的Web Services可以与Ajax无缝集成,通过定义ASMX或WCF服务,开发者可以创建可调用的服务端方法,供Ajax请求调用,实现数据的异步交换。 **Chapter 8: JSON与Ajax** JSON(JavaScript Object Notation)是...

    .net项目,利用js调用webservice连接数据库

    在.NET项目中,利用JavaScript(JS)调用Web Service连接数据库是一种常见的前后端交互方式,尤其是在构建Web应用程序时。这个项目展示了如何通过JS与后台的Web Service进行通信,实现用户登录、信息查询、列表显示...

    jquery调用基于.NET Framework 3.5的WebService返回JSON数据

    总结,通过jQuery调用.NET Framework 3.5的Web服务并接收JSON数据,开发者可以轻松地构建富客户端应用程序。理解这些概念和技术,对于构建高效、可维护的Web应用程序至关重要。记得在实践中不断学习和优化,以适应...

    Jquery Asp.net AJAX 异步通讯

    总结,jQuery与ASP.NET的AJAX异步通信提供了灵活、高效的方式来实现前后端数据交换,无论是在传统的aspx.cs页面、WebService、HttpHandler,还是现代的MVC或Web API框架中。掌握这些技术,可以提升你的Web应用性能,...

    Asp.net调用WebService例子

    ASP.NET中,可以使用`System.Web.Services.Protocols.SoapHttpClientProtocol`派生类来调用WebService。创建一个类,继承自`SoapHttpClientProtocol`,然后指定WebService的URL和命名空间,就可以调用Web方法了。 ...

    Asp.net Ajax框架教程

    8. 调用WebService方法:通过示例展示如何从客户端调用WebService中的服务端方法,实现数据的远程获取或处理。 9. 错误回调处理:学习如何处理客户端的错误回调,确保程序在出现错误时有适当的反馈机制。 10. ...

Global site tag (gtag.js) - Google Analytics