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);  
               }                     
          }
4

1 に答える 1

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
于 2012-08-15T18:33:13.430 に答える