Как установить выбранный элемент в раскрывающемся тексте ASP.NET с помощью отображаемого текста?

У меня есть выпадающий список ASP.NET, который я заполнил через привязку данных. У меня есть текст, который соответствует отображаемому тексту для элемента списка, который я хочу выбрать. Я, очевидно, не могу использовать SelectedText (только получатель), и я не знаю индекс, поэтому я не могу использовать SelectedIndex. В настоящее время я выбираю элемент, просматривая весь список, как показано ниже:

ASP:

<asp:DropDownList ID="ddItems" runat="server" /> 

Код:

ddItems.DataSource = myItemCollection;
ddItems.DataTextField = "Name";
ddItems.DataValueField = "Id";

foreach (ListItem item in ddItems.Items)
{
    if (item.Text == textToSelect)
    {
        item.Selected = true;
    }
}

Есть ли способ сделать это без перебора всех элементов?

18
задан Ed Schwehm 27 August 2010 в 19:10
поделиться

2 ответа

Вы можете попробовать:

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

Или:

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

Обратите внимание, что если вы не уверены, что существует элемент, соответствующий отображаемому тексту, вам может потребоваться проверить результаты FindByText() для нуль.

Обратите внимание, что я использую первый подход в списке множественного выбора, таком как CheckBoxList, чтобы добавить дополнительный выбор. Я использую второй подход, чтобы отменить все выборы.

46
ответ дан 30 November 2019 в 06:42
поделиться

Используйте метод FindByText класса ListItemCollection, например:

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

if(itemToSelect != null)
{
    itemToSelect.Selected = true;
}
1
ответ дан 30 November 2019 в 06:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: