2010-12-09 66 views
4

我从JavaScript方法“调用者”调用PageMethod“SameMethod”,以便我可以从数据库中获取一些值。获取值后,控件继续以“onSuccess”方法进行。问题是我需要使用“onSuccess”方法中javascript方法“caller”的一些变量值(“importantValue”)。如何将多个参数传递给PageMethod的onSuccess方法?

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

的onSuccess方法应该是这样的:

 
function onSuccess(pageMethodReturnValue, importantValue){ 

} 

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

感谢您的帮助

回答

11

调用PageMethod的时候通过你的importantValue作为附加参数。 (这通常被称为如果要获得更多信息在线搜索上下文参数)

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

然后你可以在的onSuccess回调访问值如下:

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

更新解释@JacksonLopes的成功参数 关于aspalliance website in an article by Suresh Kumar Goudampally

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

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

  • pageMethodReturnValue - 返回页面方法的输出。
  • 上下文 - 当单个回调用于多个页面方法请求时,用于处理不同的逻辑。我们还可以通过 作为context参数的值数组。
  • methodName - 此参数返回调用的页面方法的名称。
+0

感谢。就是这样:) – Janko 2010-12-09 14:13:30

3

你可以使用匿名函数

PageMethod.SomeMethod(param1,..., function(){onSuccess(foo, importantValue)}, onFailure)