一 環境
Asp.net 2.0
VS 2005
二 客戶端
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajaxnet.aspx.cs" Inherits="ajaxnet" %>
<!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>
<title>Server Time</title>
<script type="text/javascript" language="javascript">
function GetServerTime()
{
var message = '';
var context = '';
<%=sCallBackFunctionInvocation%>
}
function ShowServerTime(timeMessage, context) {
var a = document.getElementById("loadinfo");
a.innerHTML = timeMessage;
}
</script>
</head>
<body>
<form id="MainForm" runat="server">
<input id="button1" type="button" value="得到服務器端時間" onclick="GetServerTime();" />
</form>
<div id="loadinfo"></div>
</body>
</html>
<!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>
<title>Server Time</title>
<script type="text/javascript" language="javascript">
function GetServerTime()
{
var message = '';
var context = '';
<%=sCallBackFunctionInvocation%>
}
function ShowServerTime(timeMessage, context) {
var a = document.getElementById("loadinfo");
a.innerHTML = timeMessage;
}
</script>
</head>
<body>
<form id="MainForm" runat="server">
<input id="button1" type="button" value="得到服務器端時間" onclick="GetServerTime();" />
</form>
<div id="loadinfo"></div>
</body>
</html>
三 後端代碼:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class ajaxnet : System.Web.UI.Page,ICallbackEventHandler
{
public string sCallBackFunctionInvocation;
void Page_Load(object sender, System.EventArgs e)
{
sCallBackFunctionInvocation = Page.ClientScript.GetCallbackEventReference(this, "message", "ShowServerTime", "context");
}
public void RaiseCallbackEvent(string eventArgument)
{
}
public string GetCallbackResult()
{
System.Threading.Thread.Sleep(2000);
return DateTime.Now.ToString();
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class ajaxnet : System.Web.UI.Page,ICallbackEventHandler
{
public string sCallBackFunctionInvocation;
void Page_Load(object sender, System.EventArgs e)
{
sCallBackFunctionInvocation = Page.ClientScript.GetCallbackEventReference(this, "message", "ShowServerTime", "context");
}
public void RaiseCallbackEvent(string eventArgument)
{
}
public string GetCallbackResult()
{
System.Threading.Thread.Sleep(2000);
return DateTime.Now.ToString();
}
}
必須繼承ICallbackEventHandler接口,實現GetCallbackResult()
方法來返回值。
GetCallbackEventReference:獲取一個對客戶端函數的引用;調用該函數時,將啓動一個對服務器端事件的客戶端回調。此重載方法的客戶端函數包含指定的控件、參數、客戶端腳本和上下文。