通过编程设置下拉列表selecteditem


69

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

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


3
你的意思是myList.SelectedValue = someStringValue;
kbrimington

Answers:


94

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

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

list.SelectedValue = myValue.ToString();

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

UPDATE:如果myValue下拉列表选项中的值不存在,则默认选择下拉列表中的第一个选项。


5
否,SelectedValue不是只读的:“获取列表控件中所选项目的值,或选择列表控件中包含指定值的项目。”
chris4600 2013年

这确实对我有用,它根据我给的值选择了应该预先选择的元素.SelectedValue
ptf

62

ddlData.SelectedIndex将包含int要选择的特定值的值DropDown

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

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


28

这是我正在寻找的代码:

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

要么

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

1
基本上,使用更多代码可以完成相同的操作。即使所选值在列表中不存在,它也会默认使用第一个选项作为所选值。
华莱士·布雷萨

5

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

dropdownlist1.Text="Your Value";

仅当下拉列表的数据源中存在该值时,此方法才起作用。



1
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控件时!


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

欢迎使用StackOverflow。为了使您的答案更好,请在您发布的代码中添加一些注释。张贴没有任何解释的代码块不是正确的答案。
Artemix

1

只需使用此oneliner:

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

除法是下拉列表控件。

希望它能帮助某人。


0

加载“我的Windows窗体”后,它comboBox会显示“ClassName我”的列,DataTable因为它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
            }

0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.