- HTML:
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title>客户端回调--ASP.NET性能优化1</title>
- </head>
- <script language="javascript">
- function CallServer(inputcontrol,context)
- {
- //回调还没有处理完全时其预先加载的显示值
- context.innerHTML = "加载中......";
- //为你在文本框中输入的信息,并且arg在这里就是将其值传递到
- //RaiseCallbackEvent(String eventArgument)方法对应的eventArgument中
- arg = inputcontrol.value;
- //获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。
- <%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>;
- }
- function ReceiveServerData(Result,context)
- {
- context.innerHTML=Result;
- }
- </script>
- <body>
- <form id="form1" runat="server">
- <div>
- 请输入信息:<asp:TextBox ID="txtEnter" runat="server"></asp:TextBox>
- <input id="btnSubmit" type="button" value="提交" οnclick="CallServer(txtEnter,lblShow)"/>
- <br />
- <asp:Label ID="lblShow" runat="server"></asp:Label>
- </div>
- </form>
- </body>
- </html>
- cs code:
- public partial class _Default : System.Web.UI.Page ,ICallbackEventHandler
- {
- //定义一个字符串,回调的结果信息将保存在该字符串中
- private string result;
- //引发回调事件处理
- public void RaiseCallbackEvent(string eventArgument)
- {
- //"eventArgument"为从客户端的JavaScript传递过来的参数
- result = "从服务器端返回的内容:" + eventArgument;
- }
- //回传回调结果
- public string GetCallbackResult()
- {
- return result;
- }
- }
说明:
定义了2个客户端脚本函数。CallServer()函数实现的就是发送回调的功能,注意发送回调的函数实际是在服务器端实现的,这是因为真正实现发送回调的是"ClientScript.GetCallbackEventReference()"方法,而"CallServer()"函数只是对"ClientScript.GetCallbackEventReference()"方法的引用,并提供一些必要的参数。
参数:
参数 作用
control 处理客户端回调的服务器 Control。该控件必须实现 ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。
argument 从客户端脚本传递一个参数到服务器端的RaiseCallbackEvent 方法。
clientCallback 一个客户端事件处理程序的名称,该处理程序接收服务器端事件返回的结果。
context 启动回调之前在客户端的客户端脚本信息。脚本的结果传回给客户端事件处理程序。
返回值 调用客户端回调的客户端函数的名称。
ClientScriptManager.GetCallbackEventReference 方法
获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。
重载列表
名称 说明
ClientScriptManager.GetCallbackEventReference (Control, String, String, String) 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。此重载方法的客户端函数包含指定的控件、参数、客户端脚本和上下文。
ClientScriptManager.GetCallbackEventReference (Control, String, String, String, Boolean) 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。此重载方法的客户端函数包含指定的控件、参数、客户端脚本、上下文和布尔值。
ClientScriptManager.GetCallbackEventReference (Control, String, String, String, String, Boolean) 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。此重载方法的客户端函数包含指定的控件、参数、客户端脚本、上下文、错误处理程序和布尔值。
ClientScriptManager.GetCallbackEventReference (String, String, String, String, String, Boolean) 获取一个对客户端函数的引用;调用该函数时,将启动一个对服务器端事件的客户端回调。此重载方法的客户端函数包含指定的目标、参数、客户端脚本、上下文、错误处理程序和布尔值。