2012-08-15 179 views
1

我有一個綁定到某些項目的下拉列表。我想用文本框的值替換選定的項目,並再次想要將下拉列表與新值綁定。 爲此,我正在將下拉列表項目存儲在臨時列表中。我怎樣才能用文本框的值替換當前選中的項目。替換下拉列表中的項目

for (int i = 0; i < DropDownEmail.Items.Count; i++) 
      { 

       if (?) 
       { 
        ObjRegistration = new ClassRegistration(); 
        ObjRegistration.UserName = TextBoxEmail.Text; 
        tempEmailList.Add(ObjRegistration) 
       } 
       else{ 
        ObjRegistration = new ClassRegistration(); 
        ObjRegistration.UserName = DropDownEmail.Items[i].Text; 
        tempEmailList.Add(ObjRegistration); 
       }      
      } 
+0

如果(DropDownEmail.Items [I] .Selected)? – 2012-08-15 18:17:30

回答

1

您的代碼並沒有太大的意義,因爲它是現在寫的,但一般來說,如果你想在一個下拉列表,以取代一個項目,你需要做這樣的事情:

var selectedItem = tempEmailList.SelectedItem; //returns a ListItem object 
selectedItem.Text=txtField.Text; 
dropDownList.DataBind(); //Rebind it so you see the change. 

就你而言,看起來你綁定到了一個自定義集合ClassRegistration,但是由於你是在代碼隱藏中這樣做的,所以一旦你第一次將這些元素綁定到下拉列表中,你只能引用Items在下拉列表中收集所有類型爲ListItem

可以,或者,更新您的底層定製收集和重新綁定,爲下拉列表:

var tempEmailList= ... //get it from DB or whatever 

tempEmailList.Find(x => x.ID == int.Parse(ddl.SelectedItem.Value)).UserName = txtBox.Text; 

ddl.DataSource = tempEmailList;//re-assing the datasource 
ddl.DataBind();//rebind 
+0

+1用於更新基礎集合。 – 2012-08-15 18:43:31