Лучший способ проверить, содержит ли выпадающий список значение?

Когда пользователь перешел к новой странице, выбранный индекс этого ddl определяется cookie, но если бы ddl не содержит значение того cookie, то я хотел бы, чтобы это было установлено 0. Какой метод я использовал бы для ddl? Действительно ли цикл является лучшим способом или там просто, если оператор я могу выполнить?

Это - то, чего я делал попытку, но это не возвращает bool.

if ( !ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString() ) )
    ddlCustomerNumber.SelectedIndex = 0;
57
задан Justen 5 January 2010 в 15:58
поделиться

4 ответа

На ум приходят два метода:

Можно использовать Contains like so:

if (ddlCustomerNumber.Items.Contains(new 
    ListItem(GetCustomerNumberCookie().ToString())))
{
    // ... code here
}

или модифицировать текущую стратегию:

if (ddlCustomerNumber.Items.FindByText(
    GetCustomerNumberCookie().ToString()) != null)
{
    // ... code here
}

EDIT: Также существует DropDownList.Items.FindByValue, который работает так же, как и FindByText, за исключением того, что он ищет по значениям вместо них.

.
122
ответ дан 24 November 2019 в 19:25
поделиться

Это вернет предмет. Просто переключитесь на:

if (ddlCustomerNumber.Items.FindByText( GetCustomerNumberCookie().ToString()) != null)
    ddlCustomerNumber.SelectedIndex = 0;
9
ответ дан 24 November 2019 в 19:25
поделиться

А как насчет этого:

ListItem match = ddlCustomerNumber.Items.FindByText(
    GetCustomerNumberCookie().ToString());
if (match == null)
    ddlCustomerNumber.SelectedIndex = 0;
//else
//    match.Selected = true; // you'll probably select that cookie value
1
ответ дан 24 November 2019 в 19:25
поделиться

Можно попробовать проверить, не возвращает ли этот метод ноль:

if (ddlCustomerNumber.Items.FindByText(GetCustomerNumberCookie().ToString()) != null)
    ddlCustomerNumber.SelectedIndex = 0;
0
ответ дан 24 November 2019 в 19:25
поделиться
Другие вопросы по тегам:

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