Я хочу программным образом установить атрибут selecteditem
для элемента управления dropdownlist ASP.Net.
Итак, я хочу передать значение в элемент управления dropdownlist, чтобы установить выбранный элемент, где элемент равен переданному значению.
Я хочу программным образом установить атрибут selecteditem
для элемента управления dropdownlist ASP.Net.
Итак, я хочу передать значение в элемент управления dropdownlist, чтобы установить выбранный элемент, где элемент равен переданному значению.
Предполагая, что список уже привязан к данным, вы можете просто установить свойство 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
не существует как значение с опциями выпадающего списка, по умолчанию будет выбран первый параметр в раскрывающемся списке.
ddlData.SelectedIndex
будет содержать значение int
. Чтобы выбрать конкретное значение в DropDown
:
ddlData.SelectedIndex=ddlData.Items.IndexOf(ddlData.Items.FindByText("value"));
return
Тип ddlData.Items.IndexOf(ddlData.Items.FindByText("value"));
- int
.
Вот код, который я искал:
DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByText("PassedValue"));
или
DDL.SelectedIndex = DDL.Items.IndexOf(DDL.Items.FindByValue("PassedValue"));
Хорошо, если я правильно понял ваш вопрос. Решение для установки значения для данного раскрывающегося списка будет:
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 даже не существует!
ddList.Items.FindByText("oldValue").Selected = false;
ddList.Items.FindByText("newValue").Selected = true;
ddlemployee.DataSource = ds.Tables[0];
ddlemployee.DataTextField = "Employee Name";
ddlemployee.DataValueField = "RecId";
ddlemployee.DataBind();
ddlemployee.Items.Insert(0, "All");