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?
Use the
FindByText
method of theListItemCollection
class, such as: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
CheckBoxList
to add an additional selection. I use the second approach to override all selections.If you have to select dropdown selected item text for multiple dropdown cases then use this way.
Its working fine ..
Or