2010-04-24 51 views
1

我期待編寫JavaScript方法,比如當一個下拉列表值發生更改從jscript傳遞頁面控制到pagemethod的代碼隱藏?

function GetStuff(sender, destID){ 

    var dest = document.getElementById(destID); 
    this.PageMethods.GetStuffs(sender, dest, null, null); 
} 

GetStuffs(叫)是在代碼隱藏如下:

[WebMethod] 
public static void GetStuffs(object sender, object dest) 
{ 
    DropDownList s = sender as DropDownList; 
    DropDownList d = dest as DropDownList; 

    d.Items.Add(new ListItem(s.SelectedValue)); 
} 

我有設定在方法一個破發點並在GetStuff()jscript方法中發出警報,直到PageMethod調用沒有發生任何事情。我已經設置了OnSuccess和OnFailure方法,並且不會被解僱。

有什麼想法?我在做一些固有的錯誤?

回答

2

情侶項注意:

  • 的GetStuffs類返回void,所以的onSuccess或onFailure處將不會觸發
  • 即使你不回東西回來,對UI控件將不會更新,因爲在PageMethod的只是返回一個值給調用JavaScript,但不更新反正
  • 的UI您將需要處理客戶端&上的onSuccess事件,然後在客戶端上更新下拉
  • 任何變化控制在服務器上不反映在客戶端上使用PageMethods
  • 另一點需要注意的是,您要傳回的下拉對象是DOM元素&將其轉換爲服務器端控件。這不可能。
相關問題