以编程方式设置下拉列表 selecteditem

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

因此,我想传递一个值到下拉列表控件,以设置选定的项,其中该项等于传递的值。

300902 次浏览

假设该列表已经被数据绑定,您可以简单地在下拉列表中设置 SelectedValue属性。

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


list.SelectedValue = myValue.ToString();

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

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

这是我要找的代码:

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

或者

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

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

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

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

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

dropdownlist1.Text="Your Value";

只有当该值存在于下拉列表的数据源中时,这种方法才会起作用。

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

foreach (ListItem listItem in list.Items)
{
listItem.Selected = listItem.Value.Contains("some value");
}
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);

应该工作. . 特别是当使用扩展 RAD 控件,其中 FindByText/Value 甚至不存在!

            ddlemployee.DataSource = ds.Tables[0];
ddlemployee.DataTextField = "Employee Name";
ddlemployee.DataValueField = "RecId";
ddlemployee.DataBind();
ddlemployee.Items.Insert(0, "All");
ddList.Items.FindByText("oldValue").Selected = false;
ddList.Items.FindByText("newValue").Selected = true;

在加载我的 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
}

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

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

只要用这个线条:

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

其中除法是一个下拉列表控件。

希望能帮到别人。