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均有转换器WEB服务1:WS1
WEB服务2:WS
二、前台页面:
注意要点:
需要使用的后台WebService的方法均设置在如下位置

< asp:ScriptManager ID ="ScriptManager1" runat ="server" >

< Services >

< asp:ServiceReference Path ="~/WS.asmx" />

< asp:ServiceReference Path ="~/WS1.asmx" />

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);

}

}

);

}
示例代码:/Files/heekui/AJAXStudy.rar

< 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" />
1688896170
查看更多评论