I have an ASP.NET dropdown that I’ve filled via databinding. I have the text that matches the display text for the listitem I want to be selected. I obviously can’t use SelectedText (getter only) and I don’t know the index, so I can’t use SelectedIndex. I currently am selecting the item by iterating through the entire list, as show below:
ASP:
<asp:DropDownList ID="ddItems" runat="server" />
Code:
ddItems.DataSource = myItemCollection;
ddItems.DataTextField = "Name";
ddItems.DataValueField = "Id";
foreach (ListItem item in ddItems.Items)
{
if (item.Text == textToSelect)
{
item.Selected = true;
}
}
Is there a way to do this without iterating through all the items?
You can try:
Or:
Note that, if you are not certain that an items exists matching your display text, you may need to check the results of
FindByText()fornull.Note that I use the first approach on a multiple-select list, such as a
CheckBoxListto add an additional selection. I use the second approach to override all selections.