您的位置:首页 > 运维架构 > 网站架构

ajax网站中js调用webservice

2011-05-08 10:40 761 查看
webservice.cs

(1)使用命名空间using System.Web.Script.Services;

(2)在webservice类定义前面加标识[ScriptService]

(3)若webservice中定义方法的返回类型为dataset、datatable、datarow,则必须在web.config中添加代码:

 

</system.web>与<system.webServer>之间添加如下代码

 
<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>
<!--
<scriptResourceHandler enableCompression="true" enableCaching="true" />
-->
</scripting>
</system.web.extensions>
 

Default.aspx

(1)在ScriptManager控件中添加对该webservice的引用

<Services>
<asp:ServiceReference InlineScript="True" Path="WebService.asmx" />
</Services>


调用webservice.asmx

var ws=new WebService();
ws.方法(参数列表,onhandler);
function onhandler(result)
{
//result为datatable
if (result.rows==null) {
//alert('空');
return;
}
var rows=result.rows;
var cols=result.cols;
var name=result.columns[0].name;
var latitude=result.columns[1].name;
var longitude=result.columns[2].name;
var attitude1=result.columns[3].name;
var attitude2=result.columns[4].name;

for(var i=0;i<rows.length;i++)
{
var flag=new Array();
flag[0]=rows[i][name];
flag[1]=rows[i][latitude];
flag[2]=rows[i][longitude];
flag[3]=rows[i][attitude1];
flag[4]=rows[i][attitude2];
}
//result为dataset
var rows=result.tables[0].rows;
var cols=result.tables[0].cols;
//result为datarow
var cols=result.cols;
var name=result.columns[0].name;
var latitude=result.columns[1].name;
var a=result[latitude];
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息