public string GetCallbackEventReference (
Control control, 处理客户端回调的服务器 Control。该控件必须实现 ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。
string argument, 从客户端脚本传递给服务器端的一个参数、RaiseCallbackEvent 方法。
string clientCallback, 一个客户端事件处理程序的名称,该处理程序接收成功的服务器端事件的结果。即服务器端GetCallbackResult方法返回给客户端JS所在的方法。用户定义在<script>块中的JavaScript回调(callback)函数名。回调(callback)执行后,此函数最终负责页面的更新。
string context 上下文对象,客户端回调的客户端函数(即该方法的返回值函数)返回给clientCallback的一个参数.
string clientErrorCallback,客户端事件处理程序的名称,该处理程序在服务器端事件处理程序出现错误时接收结果。
bool useAsync true 表示同步执行回调;false 表示异步执行回调。
)
返回值
调用客户端回调的客户端函数的名称。
GetCallbackEventReference函数将产生如下的脚本调用:
WebForm_DoCallback(pageID, input, UpdateEmployeeViewHandler, null, null);
客户端JS需要2个函数
一是出发改回调的激发函数,即GetCallbackEventReference的返回值
二是处理服务器端所返回的结果数据,并对当前client页面进行更新的函数.即上述函数参数中的clientCallback
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="SRS.Web.WebForm1" %>
<!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></title>
<script type="text/javascript">
function DoCallBack(arg, evt, context) {
WebForm_DoCallback("__Page", arg, evt, context, null, false);
}
function btnCallback(arg, context) {
DoCallBack(arg, this.callbackEvent, context);
}
function callbackEvent(arg, context) {
alert(arg + context);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" value="Callback" onclick="btnCallback(1, 'Message')" />
</div>
</form>
</body>
</html>
public partial class WebForm1 : System.Web.UI.Page, ICallbackEventHandler
{
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.GetCallbackEventReference(this, "", "", "");
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("");
}
void ICallbackEventHandler.RaiseCallbackEvent(String eventArgument)
{
eventArgument = "i have changed~";
}
string ICallbackEventHandler.GetCallbackResult()
{
return "Data from server...";
}
}
例子2
<%@ Page Language="C#" AutoEventWir