
Пример обычного
выпадающего списка
Зачастую при разработке веб-приложений на ASP.NET появляется необходимость заполнять DropDownList (выпадающий список) значениями из, например, базы данных — в зависимости от какого-то условия.
Если реализовывать заполнение DropDownList (например, с ID="DropDownList1") в Page_Load, например:
DropDownListFill(DropDownList1);
то возникает такая проблема — после PostBack'a страницы данные о выбранном значении (DropDownList1.SelectedValue) не сохраняются, так как после постбека снова срабатывает заполнение списка значениями.
Но выход есть: просто выполняйте заполнение DropDownList не в Page_Load, а в Page_Init, например:
private void Page_Init(object sender, EventArgs e)
{
DropDownListFill(DropDownList1);
}
В этом случае всё работает корректно — и DropDownList заполняется, и данные о SelectedValue не обнуляются, — поскольку Page_Init находится раньше в жизненном цикле ASP.NET-страницы, чем Page_Load.
Пользуйтесь!
Есть ещё один вариант решения вопроса, но он более хитрый и не подходит не для всех случаев. Работая с ASP.NET Ajax, можно использовать CascadingDropDown для заполнения DropDownList-a.