【问题标题】:Setting dropdownlist selecteditem programmatically以编程方式设置下拉列表选定项
【发布时间】:2010-08-16 19:12:47
【问题描述】:

我想以编程方式为 ASP.Net 下拉列表控件设置 selecteditem 属性。

所以我想向下拉列表控件传递一个值来设置选中的项目,其中项目等于传递的值。

【问题讨论】:

  • 你的意思是myList.SelectedValue = someStringValue;

标签: c# asp.net drop-down-menu


【解决方案1】:

假设列表已经是数据绑定的,您只需在下拉列表中设置 SelectedValue 属性即可。

list.DataSource = GetListItems(); // <-- Get your data from somewhere.
list.DataValueField = "ValueProperty";
list.DataTextField = "TextProperty";
list.DataBind();

list.SelectedValue = myValue.ToString();

myValue 变量的值需要存在于控件数据绑定中DataValueField 中指定的属性中。

更新: 如果myValue 的值不作为下拉列表选项的值存在,它将默认选择下拉列表中的第一个选项。

【讨论】:

  • 否,SelectedValue 不是只读的:“获取列表控件中选定项的值,或者选择列表控件中包含指定值的项。”
  • 这确实对我有用,它根据我给.SelectedValue 的值选择应该预先选择的元素。
【解决方案2】:

ddlData.SelectedIndex 将包含int 值要选择特定值到DropDown 中:

ddlData.SelectedIndex=ddlData.Items.IndexOf(ddlData.Items.FindByText("value"));

return 类型的ddlData.Items.IndexOf(ddlData.Items.FindByText("value"));int

【讨论】:

    【解决方案3】:

    这是我正在寻找的代码:

    DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByText("PassedValue"));
    

    或者

    DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByValue("PassedValue"));
    

    【讨论】:

    • 这基本上是用更多的代码做同样的事情。即使选定的值不作为列表中的项目存在,它也默认将第一个选项作为其选定值。
    【解决方案4】:

    如果我理解正确你的问题。为给定下拉列表设置值的解决方案是:

    dropdownlist1.Text="Your Value";
    

    仅当下拉列表的数据源中存在该值时才有效。

    【讨论】:

      【解决方案5】:

      如果您需要根据表达式选择列表项:

      foreach (ListItem listItem in list.Items)
      {
          listItem.Selected = listItem.Value.Contains("some value");
      }
      

      【讨论】:

        【解决方案6】:

        只需使用此单线笔:

        divisions.Items.FindByText("Some Text").Selected = true;
        divisions.Items.FindByValue("some value").Selected = true;
        

        div 是一个下拉列表控件。

        希望对某人有所帮助。

        【讨论】:

          【解决方案7】:
          var index = ctx.Items.FirstOrDefault(item => Equals(item.Value, Settings.Default.Format_Encoding));
          ctx.SelectedIndex = ctx.Items.IndexOf(index);
          

          foreach (var listItem in ctx.Items)
            listItem.Selected = Equals(listItem.Value as Encoding, Settings.Default.Format_Encoding);
          

          应该可以工作.. 尤其是在使用 FindByText/Value 甚至不存在的扩展 RAD 控件时!

          【讨论】:

            【解决方案8】:
            ddList.Items.FindByText("oldValue").Selected = false;
            ddList.Items.FindByText("newValue").Selected = true;
            

            【讨论】:

            • 欢迎来到 StackOverflow。为了让您的答案更准确 - 在您发布的代码中添加一些 cmets。发布一段没有任何解释的代码不是正确的答案。
            【解决方案9】:

            在加载我的 Windows 窗体时,comboBox 将显示我的DataTableClassName 列,因为它是DisplayMember 也有它的ValueMember(用户不可见)。

            private void Form1_Load(object sender, EventArgs e)
                        {
                            this.comboBoxSubjectCName.DataSource = this.Student.TableClass;
                            this.comboBoxSubjectCName.DisplayMember = TableColumn.ClassName;//Column name that will be the DisplayMember
                            this.comboBoxSubjectCName.ValueMember = TableColumn.ClassID;//Column name that will be the ValueMember
                        }
            

            【讨论】:

              【解决方案10】:

              安全检查仅选择项目是否匹配。

              //try to find item in list.  
              ListItem oItem = DDL.Items.FindByValue("PassedValue"));
              //if exists, select it.
              if (oItem != null) oItem.Selected = true;
              

              【讨论】:

                【解决方案11】:
                            ddlemployee.DataSource = ds.Tables[0];
                            ddlemployee.DataTextField = "Employee Name";
                            ddlemployee.DataValueField = "RecId";
                            ddlemployee.DataBind();
                            ddlemployee.Items.Insert(0, "All");
                
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-12-28
                • 2017-04-17
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-01-15
                相关资源
                最近更新 更多