6

我从javascript方法“调用者”调用PageMethod“SameMethod”,以便我可以从数据库中获取一些值。在我获得值后,控制继续在“onSuccess”方法中。问题是我需要在“onSuccess”方法中使用来自javascript方法“caller”的一些变量值(“importantValue”)。

 
函数调用者(){
    var 重要值 = 1984;   
    PageMethod.SomeMethod(param1,..., onSuccess, onFailure)
}

onSuccess 方法应该是这样的:

函数 onSuccess(pageMethodReturnValue, importantValue){

}

是否有可能,如果可以,如何将多个参数(除了页面方法的返回值)传递给 PageMethod 的“onSuccess”方法?

感谢帮助

4

2 回答 2

13

在调用 PageMethod 时将您importantValue作为附加参数传递。(如果您在线搜索更多信息,这通常称为上下文参数)

function caller(){
    var importantValue = 1984;   
    PageMethod.SomeMethod(param1,..., onSuccess, onFailure, importantValue)
}

然后您可以访问 onSuccess 回调中的值,如下所示:

function onSuccess(pageMethodReturnValue, context, methodName){
    // context == 1984
}

更新以解释 @JacksonLopes 的 onSuccess 参数在 Suresh Kumar Goudampally 的文章中,aspalliance 网站上有一个很好的描述

重要的一点(修改为使用我的参数名称)是:

成功回调方法有三个参数:

  • pageMethodReturnValue - 返回页面方法的输出。
  • context - 当单个回调用于多个页面方法请求时,这用于处理不同的逻辑。我们还可以传递一个值数组作为context参数。
  • methodName - 此参数返回调用的页面方法的名称。
于 2010-12-09T13:43:32.780 回答
4

您可以使用匿名函数

PageMethod.SomeMethod(param1,..., function(){onSuccess(foo, importantValue)}, onFailure)
于 2010-12-09T13:43:34.580 回答