2010-12-09 65 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)