Как выбрать элемент выпадающего списка по значению программно в С#.NET?
Как выбрать программный элемент выпадающего списка по значению
Ответ 1
Если вы знаете, что в раскрывающемся списке содержится значение, которое вы хотите выбрать, используйте:
ddl.SelectedValue = "2";
Если вы не уверены, существует ли это значение, используйте (или вы получите исключение с нулевой ссылкой):
ListItem selectedListItem = ddl.Items.FindByValue("2");
if (selectedListItem != null)
{
selectedListItem.Selected = true;
}
Ответ 2
Пожалуйста, попробуйте ниже:
myDropDown.SelectedIndex =
myDropDown.Items.IndexOf(myDropDown.Items.FindByValue("myValue"))
Ответ 3
ddl.SetSelectedValue("2");
С помощью удобного расширения:
public static class WebExtensions
{
/// <summary>
/// Selects the item in the list control that contains the specified value, if it exists.
/// </summary>
/// <param name="dropDownList"></param>
/// <param name="selectedValue">The value of the item in the list control to select</param>
/// <returns>Returns true if the value exists in the list control, false otherwise</returns>
public static Boolean SetSelectedValue(this DropDownList dropDownList, String selectedValue)
{
ListItem selectedListItem = dropDownList.Items.FindByValue(selectedValue);
if (selectedListItem != null)
{
selectedListItem.Selected = true;
return true;
}
else
return false;
}
}
Примечание. Любой код выпущен в общедоступном домене. Не требуется атрибуция.
Ответ 4
combobox1.SelectedValue = x;
Я подозреваю, что вам может понадобиться услышать что-то еще, но это то, о чем вы просили.
Ответ 5
Это простой способ выбрать опцию из раскрывающегося списка на основе строки val
private void SetDDLs(DropDownList d,string val)
{
ListItem li;
for (int i = 0; i < d.Items.Count; i++)
{
li = d.Items[i];
if (li.Value == val)
{
d.SelectedIndex = i;
break;
}
}
}
Ответ 6
У Иана Бойда (выше) был отличный ответ - добавьте это в класс Иана Бойда "WebExtensions", чтобы выбрать элемент в раскрывающемся списке на основе текста:
/// <summary>
/// Selects the item in the list control that contains the specified text, if it exists.
/// </summary>
/// <param name="dropDownList"></param>
/// <param name="selectedText">The text of the item in the list control to select</param>
/// <returns>Returns true if the value exists in the list control, false otherwise</returns>
public static Boolean SetSelectedText(this DropDownList dropDownList, String selectedText)
{
ListItem selectedListItem = dropDownList.Items.FindByText(selectedText);
if (selectedListItem != null)
{
selectedListItem.Selected = true;
return true;
}
else
return false;
}
Чтобы назвать это:
WebExtensions.SetSelectedText(MyDropDownList, "MyValue");
Ответ 7
Для тех, кто приходит сюда путем поиска (потому что эта тема старше 3 лет):
string entry // replace with search value
if (comboBox.Items.Contains(entry))
comboBox.SelectedIndex = comboBox.Items.IndexOf(entry);
else
comboBox.SelectedIndex = 0;
Ответ 8
Взгляните на эту статью
Ответ 9
Я предпочитаю
if(ddl.Items.FindByValue(string) != null)
{
ddl.Items.FindByValue(string).Selected = true;
}
Замените ddl идентификатором выпадающего списка и строкой с именем или значением строковой переменной.
Ответ 10
ddlPageSize.Items.FindByValue("25"). Selected = true;