【问题标题】:replacing items in dropdownlist替换下拉列表中的项目
【发布时间】:2012-08-15 18:13:57
【问题描述】:

我有一个绑定到某些项目的下拉列表。我想用文本框值替换所选项目,并再次想用新值绑定下拉列表。 为此,我目前将下拉列表项存储在临时列表中。如何用文本框值替换当前选定的项目。

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

【问题讨论】:

  • if(DropDownEmail.Items[i].Selected)?

标签: asp.net drop-down-menu


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-12-02
    • 2012-11-11
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    相关资源
    最近更新 更多