客户端回调本质上就是指经过前端的客户端脚本向服务器端传递相应的数据参数,服务器端再以接受到的参数进行查询和处理,最后将结果回传到客户端进行显示。asp.net 2.0提供了实现无刷新回调的接口ICallbackEventHandler.为了实现客户端回调,你必须实现一个ICallbackEventHandler接口,该接口定义了两个方法法RaiseCallbackEvent和GetCallbackResult. RaiseCallbackEvent()从浏览器接受一个字符串做为事件参数,即该方法接受客户端JavaScript传递的参数,注意它是首先触发的。接下来触发的就是GetCallbackResult()方法,它将所获得的结果传回给客户端的JavaScript,JavaScript再将结果更新到页面。下面以实例说明:javascript
前台代码以下:html
Code
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>AJAX回调模式</title>

<script type="text/javascript">
//回调函数
function receiveServerData(arg,context)

{
document.getElementById("result").innerHTML=arg;
}

/**//* 为了向服务器页发送回调和接收结果这两个功能,
能够在客户端定义两个脚本函数来实现用ClientScriptManager类
的GetCallbackEventReference方法在客户端注册一个向服务器端发送请求的函数。
Page.ClientScript得到页面的ClientScriptManager引用,GetCallbackEventReference注册发送回调请求的函数。
*/

/**//*
public string GetCallbackEventReference (Control control,string argument,string clientCallback,string context)

参数 做用
control 处理客户端回调的服务器 Control。该控件必须实现 ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。
argument 从客户端脚本传递一个参数到服务器端的RaiseCallbackEvent 方法。
clientCallback 一个客户端事件处理程序的名称,该处理程序接收服务器端事件返回的结果。
context 启动回调以前在客户端的客户端脚本信息。脚本的结果传回给客户端事件处理程序。
返回值 调用客户端回调的客户端函数的名称。
*/
function callServer(arg,context)

{
<%=ClientScript.GetCallbackEventReference(this,"arg","receiveServerData","context") %>;
}
//---------------------------------------------
function RServerData(arg,context)

{
context.value=arg;
}
function Call(Input,context)

{
arg=Input.value;
<%=ClientScript.GetCallbackEventReference(this,"arg","RServerData","context") %>;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<input type="button" value="Submit" onclick="callServer()" />
<div id="result">

</div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="button" type="button" value="submit" onclick="Call(TextBox1,TextBox2)"/>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</form>
</body>
</html>