2010-02-24 20 views
2

EDIT2:難度設置自定義DDL的價值與jQuery

我嘗試新的東西我加入這行代碼:

$(self.ddlOwner + "option[value='" + this.owner_USER_ID +"']").attr("selected", "selected"); 

然而這行代碼事實上確實正確設置值,但它這樣做在頁面上的所有DDL上。因此,如果該值爲1周的所有四個的DDL我設置的值在整個頁面上= 1

末EDIT2

我有一個自定義控制的DropDownList。

public class AssigneesDDL : System.Web.UI.WebControls.DropDownList 
    { 
    ... 
    } 

它被填充onInit。而從服務器端我會用一個屬性來設置它的值。

此屬性:

public string ValueID 
     { 
      get { return base.SelectedItem.Value; } 

      set 
      { 
       ListItem li = base.Items.FindByValue(value.ToString()); 
       if (li != null) 
       { 
        li.Selected = true; 
       } 
       else 
       { 
        ListItem li2 = new ListItem("", ""); 
        base.Items.Add(li2); 
        li2.Selected = true; 
       } 
      } 

     } 

現在我需要從客戶端的價值,我想用一些jQuery來做到這一點,沒有任何的運氣。

我有值捕獲但不知道如何設置它。我都試過:

$(self.ddlOwner).val(this.owner_USER_ID); 

$(self.ddlOwner + "option:selected").val(this.owner_USER_ID); 

任何人有什麼想法?

編輯:

哦,我已經試過:

$(self.ddlOwner + "option:selected").text(this.owner_USER_ID); 

這一個實際上增加了新的線路與正確的價值的DDL,但同時也增加了該值每一個DDL我頁。這很奇怪。不太確定它爲什麼這樣做。

Self.ddlOwner是(「#」+ ddl.clientID)。所以我有正確的控制手柄。

+0

self.ddlOwner究竟是如何設置的?代碼是什麼? – zincorp 2010-02-25 21:56:21

回答

0

顯然問題是我正在使用網頁控制。一個ascx。當我轉移到外部控制時,.val()方法工作正常。

不知道爲什麼它不能與ascx web控件的DDL一起使用。

0

如果您有一個自定義控件在服務器端被填充,您爲什麼要設置客戶端的值?它應該足以設置SelectedItem或SelectedIndex屬性,然後它將被正確渲染。

你能解釋一下你的情況嗎?