#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;
}
}