实现
Asp.Net2.0的客户端回调功能
一 环境
Asp.net 2.0
VS 2005
二 客户端
三 后端代码:
必须继承ICallbackEventHandler接口,实现GetCallbackResult()
方法来返回值。
GetCallbackEventReference:获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。此重载方法的客户端函数包含指定的控件、参数、客户端脚本和上下文。
一 环境
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:获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。此重载方法的客户端函数包含指定的控件、参数、客户端脚本和上下文。