2010-06-04 13 views
10

对WebForm_DoCallback函数的MSDN有一个简单的解释吗?WebForm_DoCallback定义

我所能找到的只是这篇文章http://msdn.microsoft.com/en-us/magazine/cc163878.aspx 它确实包含了WebForm_DoCallback的实现,但它本身并没有很好地解释参数。

function WebForm_DoCallback(eventTarget, eventArgument, 
eventCallback, context, errorCallback) 

就像它期待的'eventTarget'一样吗? 什么是'背景'? 等......

回答

10

WebForm_DoCallback似乎是GetCallbackEventReference的客户端副本。它使用相同的参数,这是如下产生的:

目标:处理客户端 回调服务器控件的名称。控件必须实现 ICallbackEventHandler接口 并提供RaiseCallbackEvent 方法。

参数:从客户端脚本传递给服务器的参数 RaiseCallbackEvent方法。

clientCallback:接收成功的服务器事件的 结果的客户端事件处理程序的名称。

上下文:客户端脚本在 之前在客户端上开始回调。 的结果将传回给 客户端事件处理程序。

clientErrorCallback:当在 服务器事件处理中发生错误,接收 结果客户端事件处理程序的名称。

useAsync:true为异步执行回调;假到 同步执行回调。

clientCallbackclientErrorCallback是客户端(通常是JavaScript)与形式参数的函数:

function clientCallback(returnmessage, context) {} 

returnmessage是从服务器(或错误)的响应和上下文与之前传入的上下文相同。

参考文献:

MSDN: ClientScriptManager.GetCallbackEventReference Method

MSDN Magazine: Implications of Script Callbacks in ASP.NET

ESRI Developer Network: Page Postbacks and Client Callbacks

0

您需要在什么情况下使用它?该字符串由ClientScriptManager中的以下方法调用生成:http://msdn.microsoft.com/en-us/library/ms153110%28v=VS.100%29.aspx

使用此可用于生成上述语句,而无需了解详细信息。

HTH。

+0

我实际上在客户端调用此函数WebForm_DoCallback(...),所以我提供所有参数。因此,这个问题。 – 2010-06-04 20:20:32

+0

我明白。对不起,我查找客户端方法的资源,但没有找到任何好的方法。同时,要解决这个问题,你可以在服务器上生成方法调用并传递给客户端,并使用诸如eval()之类的东西来评估它。 – 2010-06-05 17:09:24

5

我们可以看到类似this--

WebForm_DoCallback('__Page',parameter,callBack,context,null,false); 

在页面资源文件中。 看来'参数'是一个值类型(字符串),而上下文是一个ref类型。无论如何,“背景”很少使用。 “参数”只能是一个字符串,因此您可能需要将多个值合并到一起,然后将其分离到服务器上。 而数据被发送到服务器端,相对的类(如接口的子类“ICallbackEventHandler”)瞬间将被创建,并且该处理程序方法将被调用:

public void RaiseCallbackEvent(string eventArgument) 
{ 
    //deal with the eventArgument(the "parameter")   
} 

之后的另一种方法接着,返回一个字符串返回的响应..

public string GetCallbackResult() 
{ 
    //return command; 
} 

终于异步过程提高了回调函数(“回调”在这种情况下),这应该有两个输入PARAMS:

function callBack(returnedStuff, context) {......} 

,这就是它是如何工作的 但是我不知道的JavaScript函数“WebForm_DoCallback”的定义在哪里,所以它可能不会在非Windows计算机上运行。