我从javascript方法“caller”调用PageMethod“SameMethod”,这样我就可以从DB中获取一些值。获取值后,控制将继续“onSuccess”方法。问题是我需要在“onSuccess”方法中使用javascript方法“caller”中的一些变量值(“importantValue”)。
function caller(){ var importantValue = 1984; PageMethod.SomeMethod(param1,..., onSuccess, onFailure) }
onSuccess方法应该是这样的:
function onSuccess(pageMethodReturnValue, importantValue ){ }
是否可以,如果是,如何将多个参数(除了页面方法的返回值)传递给PageMethod的“onSuccess”方法?
感谢您的帮助
答案 0 :(得分:12)
调用PageMethod时,将importantValue
作为附加参数传递。 (如果您在线搜索更多信息,这通常称为上下文参数)
function caller(){
var importantValue = 1984;
PageMethod.SomeMethod(param1,..., onSuccess, onFailure, importantValue)
}
然后您可以按如下方式访问onSuccess回调中的值:
function onSuccess(pageMethodReturnValue, context, methodName){
// context == 1984
}
更新以解释@JacksonLopes的onSuccess参数 aspalliance website in an article by Suresh Kumar Goudampally
有一个很好的描述重要的位(修改为使用我的参数名称)是:
成功回调方法有三个参数:
- pageMethodReturnValue - 返回页面方法的输出。
- context - 当单个回调用于多个页面方法请求时,它用于处理不同的逻辑。我们也可以通过 作为
context
参数的值数组。- methodName - 此参数返回名为的页面方法名称。
答案 1 :(得分:4)
您可以使用匿名函数
PageMethod.SomeMethod(param1,..., function(){onSuccess(foo, importantValue)}, onFailure)