我们如何将多个参数传递给PageMethod的onSuccess方法?

时间:2010-12-09 12:34:36

标签: javascript asp.net pagemethods

我从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”方法?

感谢您的帮助

2 个答案:

答案 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)