Comment sélectionner un élément de la liste déroulante par valeur par programme dans C # .NET?
Si vous savez que la liste déroulante contient la valeur que vous souhaitez sélectionner, utilisez:
ddl.SelectedValue = "2";
Si vous n'êtes pas sûr que la valeur existe, utilisez (ou vous obtiendrez une exception de référence null):
ListItem selectedListItem = ddl.Items.FindByValue("2");
if (selectedListItem != null)
{
selectedListItem.Selected = true;
}
S'il vous plaît essayer ci-dessous:
myDropDown.SelectedIndex =
myDropDown.Items.IndexOf(myDropDown.Items.FindByValue("myValue"))
ddl.SetSelectedValue("2");
Avec une extension pratique:
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;
}
}
Remarque : Tout code est publié dans le domaine public. Aucune attribution requise.
C'est un moyen simple de sélectionner une option dans une liste déroulante en fonction d'une chaîne 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;
}
}
}
Ian Boyd (ci-dessus) avait une excellente réponse - Ajoutez ceci à la classe "WebExtensions" de Ian Boyd pour sélectionner un élément dans une liste déroulante en fonction du texte:
/// <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;
}
Pour l'appeler:
WebExtensions.SetSelectedText(MyDropDownList, "MyValue");
combobox1.SelectedValue = x;
Je suppose que vous voudrez peut-être entendre autre chose, mais c'est ce que vous avez demandé.
Je préfère
if(ddl.Items.FindByValue(string) != null)
{
ddl.Items.FindByValue(string).Selected = true;
}
Remplacez ddl par l'ID de liste déroulante et chaîne par le nom ou la valeur de votre variable chaîne.
Pour ceux qui viennent ici par recherche (car ce fil a plus de 3 ans):
string entry // replace with search value
if (comboBox.Items.Contains(entry))
comboBox.SelectedIndex = comboBox.Items.IndexOf(entry);
else
comboBox.SelectedIndex = 0;
Regardez cet article
Comment sélectionner un élément dans une DropDownList par valeur Asp.Net
ddlPageSize.Items.FindByValue ("25"). Sélectionné = true;