客户端回调过程..

首先客户端有个触发回到的事件,在这我把它设置成按钮的Click事件:

<input id="Button2" type="button" value="Aysn Call" onclick="button_click()" />

1.此事件向服务器端发送请求:

function button_click() {
var args = document.forms[0]['TextBox1'].value;
<%=ClientScript.GetCallbackEventReference(this,"args","GetResultFromServer","" )%>}

this:必须实现System.Web.UI.ICallbackEventHandler这个借口

“args":这是客服端发送过来的参数被传送给System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent(System.String) 方法

此方法在”this"中实现。

“GetResultFromServer”:客服端 事件处理函数,它接受服务器端成功处理的结果。

context:在客服端开始回调之前被解析的客服端脚本,结果被传送到客服端事件处理函数中,也即上面的“GetResultFromServer".

2.服务器端接受到请求后调用ClientScript.GetCallbackEventReference(.....),处理完成后引发

ICallbackEventHandler.RaiseCallbackEvent(string args)这个服务器回调事件:

public void RaiseCallbackEvent(string eventArgument(=args))
{
if (string.IsNullOrEmpty(eventArgument))
_result = "我来自回调,我被部分刷新";
else
_result = "Hi, 我来自回调,我被部分刷新";
};

3.服务器回调事件处理完成后,返回结果给ICallbackEventHandler.GetCallbackResult(),

这个函数把结果放到ICallbackEventHandler的GetCallbackResult()中,它会自动发送给客户端:

public string GetCallbackResult()
{
return "Hello " + _result;
};

4,客户端函数“GetResultFromServer”,接受结果并做处理:

function GetResultFromServer(value,context)
{
document.forms[0]['TextBox1'].value= value(="Hello " + _result);
}

 

回调事件的完整过程。

原文地址:https://www.cnblogs.com/lorking/p/2617925.html