开发者

How can you set the selected item in an ASP.NET dropdown via the display text?

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)
   开发者_JAVA百科 {
        item.Selected = true;
    }
}

Is there a way to do this without iterating through all the items?


You can try:

ddItems.Items.FindByText("Hello, World!").Selected = true;

Or:

ddItems.SelectedValue = ddItems.Items.FindByText("Hello, World!").Value;

Note that, if you are not certain that an items exists matching your display text, you may need to check the results of FindByText() for null.

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.


Use the FindByText method of the ListItemCollection class, such as:

ListItem itemToSelect = ddlItems.Items.FindByText("some text to match");

if(itemToSelect != null)
{
    itemToSelect.Selected = true;
}


If you have to select dropdown selected item text for multiple dropdown cases then use this way.

// Call Method
SelectDropdownItemByText(ddlDropdown.Items.FindByText("test"));

// Define method
public void SelectDropdownItemByText(ListItem item)
{
    if (item != null)
    {
        item.Selected = true;
    }
}


Its working fine ..

drplistcountry.SelectedIndex = 
drplistcountry.Items.IndexOf(drplistcountry.Items.FindByText("--Select--"));

Or

drplistcountry.ClearSelection();
drplistcountry.SelectedIndex = 
drplistcountry.Items.IndexOf(drplistcountry.Items.FindByText("--Select--"));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜