现在建立了Web Service and ScriptManager,接着再创建某些JavaScript代码,此代码将简单地从服务器上面重新找到当前的数据和时间。(如代码3)
代码3: 异步调用一个Web Service中的一个method
Collapse在代码3中,当点击输入按钮时,我们调用了一个被称为GetServerTime() 的功能,在这个功能中,我们调用了方法GetServerTime ,此方法GetServerTime 被定义在PeopleWebService.asmx 文件中。我们访问了JavaScript 服务中的方法,好像这些服务是静态定义的类型一样(例如WebServiceName.NameOfMethod)。当我们从服务返回某些数据时要调用的功能,当服务超时或者出错时我们该怎么办?OnSuccessCallback功能产生了参数结果,结果就是返回的任何数据类型的变量名称——它可能是一个 阵列,整数,或者其它……在这种情况下,我们返回了一个字符串——然后我们将那个字符串显示在一个示警框中(如代码3所示).
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ServerTime.aspx.cs"
Inherits="No_State_ServerTime" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Server Time</title>
<script type="text/javascript">
function GetServerTime() {
PeopleWebService.GetServerTime(OnSuccessCallback, OnServiceTimeout,
OnServiceError);
}
function OnSuccessCallback(result) {
alert(result);
}
function OnServiceTimeout(result) {
alert(result);
}
function OnServiceError(result) {
alert(result);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager
ID="sm"
runat="server">
<Services>
<asp:ServiceReference
Path="~/WebServices/PeopleWebService.asmx" />
</Services>
</asp:ScriptManager>
<input
type="button"
value="Get Server Time"
onclick="GetServerTime()" />
</form>
</body>
</html>