Asp.Net Ajax 2.0 调用WebService 中的方法
2008-11-17 13:54 蓝之风 阅读(850) 评论(1) 编辑 收藏 举报Asp.Net ajax 2.0 调用WebService 非常方便,很多细节都被封装好了,可以和asp.net无缝连接起来。Asp.Net Ajax2.0调用WebServiece的步骤如下:
1、新建一个WebService
2、将这个WebService类加上[ScriptService]Attribute
3、给需要暴露的方法前加上[WebMethod]Attribute
4、在需要调用WebService的页面添加
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="AjaxServices.asmx" />
</Services>
</asp:ScriptManager>控件,并在控件中引用需要调用的webService名称
5、写简单的js代码,在调用Webservice的js方法中需要使用如下格式:
[NameSpace].[ClassName].[Method]
6、写回调函数,并在回调函数中处理webservice方法返回的结果;
下面通过一个实例来说明Asp.net Ajax2.0如何调用WebService:
1、WebService中的代码:
Code
这里暴露了两个方法我们只用后面的那个方法:
public List<RedStarNetLibModel.Pager.Employee> GetEmployee()此方法返回的是人员的一个泛型列表
2、在页面上调用WebService的代码:
Code
在页面上放置了一个ScriptManager空间并引入WebService的地址:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="AjaxServices.asmx" />
</Services>
</asp:ScriptManager>再放一个div和<input type="button" value="加载数据" id="btngetdata" />当点击按钮的时候将数据加载到div中,方法:
$(function(){
$("#btngetdata").click(GetEmployees);
})使用jQuery将按钮绑定到id="btngetdata"按钮上当点击按钮时就调用GetEmployees()方法;
方法:
function GetEmployees()
{
WebAppTest.Ajax.AjaxServices.GetEmployee(onSecess,onError,onTimeout);}
这里调用Webservice方法,提供js和Webservice的交互,也是整个代码的核心,onSecces,是一个调用成功后的回调函数,所有的现实逻辑都在这里处理,onError,是一个调用失败的回调函数,onTimeout,是一个调用超时的回调函数。在onSecces中
function onSecess(result)
{
var s=String.format("<table class=\"tblClass\" ><tr><th>EmployeeId</th><th>FirstName</th><th>LastName</th><th>BirthDate</th></tr>");
for(var i=0;i<result.length;i++)
{
s+=String.format("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td>",result[i].EmployeeID,result[i].FirstName,result[i].LastName,result[i].BirthDate);
}
s+="</table>";
$("#emp").html(s);
}
我们将取到的数据格式化成Table然后通过jQuery的方法将数据显示到页面上。onError(result)和onTimeout(result)将调用该方法时出现的异常和超时信息alert出来。看看运行的效果:
总结:使用Asp.net Ajax2.0 调用WebService的方法非常简单,关键步骤是创建WebService--->暴露WebService所在的类和外界调用的方法-->js通过C#中的FullName的方式来调用WebService中的方法-->在回调方法中处理返回的数据并显示给用户。
作者:蓝之风
出处:http://www.cnblogs.com/vaiyanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。