以编程方式设置下拉列表选项

时间:2010-08-16 19:12:48

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

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

所以我想将一个值传递给dropdownlist控件,以设置项目等于传递值的所选项目。

11 个答案:

答案 0 :(得分:91)

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

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

list.SelectedValue = myValue.ToString();

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

<强>更新: 如果myValue的值不存在作为带有下拉列表选项的值,则默认选择下拉列表中的第一个选项。

答案 1 :(得分:60)

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

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

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

答案 2 :(得分:28)

以下是我要找的代码:

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

或者

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

答案 3 :(得分:4)

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

dropdownlist1.Text="Your Value";

仅当值存在于下拉列表的数据源中时,此方法才有效。

答案 4 :(得分:4)

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

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

答案 5 :(得分:1)

var index = ctx.Items.FirstOrDefault(item => Equals(item.Value, Settings.Default.Format_Encoding));
ctx.SelectedIndex = ctx.Items.IndexOf(index);

OR

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

应该有效..特别是当使用FindByText / Value甚至不存在的扩展RAD控件时!

答案 6 :(得分:1)

ddList.Items.FindByText("oldValue").Selected = false;
ddList.Items.FindByText("newValue").Selected = true;

答案 7 :(得分:0)

在加载“我的Windows表单”时,comboBox将显示我的ClassName的{​​{1}}列,因为它是DataTable也有其DisplayMember(不可见给用户)。

ValueMember

答案 8 :(得分:0)

进行安全检查,仅选择匹配的项目。

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

答案 9 :(得分:0)

只需使用此oneliner:

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

除法是下拉列表控件。

希望它可以帮助某人。

答案 10 :(得分:-3)

            ddlemployee.DataSource = ds.Tables[0];
            ddlemployee.DataTextField = "Employee Name";
            ddlemployee.DataValueField = "RecId";
            ddlemployee.DataBind();
            ddlemployee.Items.Insert(0, "All");