ASP.Net Выпадающий список выбранных индексов не меняется

#asp.net #drop-down-menu

#asp.net #выпадающее меню

Вопрос:

Я работаю над проектом, в котором у меня есть OdbcDataReader, который считывает данные из запроса и заполняет выпадающий список элементами из запроса. Когда я запускаю веб-приложение и выбираю разные элементы в списке, выбранное значение никогда не изменяется независимо от того, включена ли обратная передача или нет, включена ли интеллектуальная подкачка или если EnableViewState

  protected void populateGrid(OdbcDataReader reader)
    {
        ClientDropDownList.DataSource = reader;
        ClientDropDownList.DataTextField = "company";
        ClientDropDownList.DataBind();

    }
 

Комментарии:

1. Пожалуйста, предоставьте дополнительную информацию. Какую стадию жизненного цикла страницы вы используете для вызова этого метода populateGrid(…) ? Если вы хотите получить выбранное значение в коде, какой метод вы используете для этого?

2. Вы также должны установить значение DataValueField .

Ответ №1:

Сначала вы должны установить значение AutoPostBack = true для элемента управления Dropdownlist.

Во-вторых, вы должны связать значения в событии Page_Load, проверив Ispostback

 If(! IsPostBack())   
{

    Bind your dropdownlist  here.
} 
 

Третья вещь в соответствии с Asp.Net Процесс жизненного цикла.Загрузка страницы будет запускаться каждый раз.Когда когда-либо страница обновляется.

Ответ №2:

Убедитесь, что вы не вызываете PopulateGrid каждый PostBack из них. Одна из наиболее распространенных проблем, с которыми сталкиваются люди.

Если ваш вызов PopulateGrid в вашем Page_Load оберните его в if (!IsPostBack) .

Ответ №3:

вы можете использовать этот код:

   foreach (ListItem item in YourDropDownList.Items)
     {
            if (item.Text == defaultText) 
            {
                item.Selected = true;
                break;
            }
     }