Жизненный цикл страницы выполняет следующие действия (плюс другие шаги, не относящиеся к вашему вопросу):
OnInit
- Заполнение элементов управления из ViewState (при обратной передаче)
- Установите выбранные значения (во время обратной передачи)
Page_Load
Вам необходимо включить ViewState, чтобы он мог заполнять список, прежде чем он "выберет" элемент.В этом случае убедитесь, что вы не переполняете в Page_Load и не теряете выбранное значение.Сделайте что-то вроде if (!IsPostback) { // Populate }
В противном случае вам придется заполнять список вручную в событии OnInit
при каждом запросе страницы.Page_Load
слишком поздно в жизненном цикле, поэтому выбранный элемент теряется.
Редактировать:
Для DropDownList
также должны быть установлены допустимые значения (отдельно оттекст отображается в браузере).Это делается через свойство DataValueField
.Каждое значение должно быть уникальным, иначе будет выбран только первый дубликат элемента.Если вы посмотрите на источник HTML в своем браузере, у вас должно быть:
<select>
<option value="unique_value1">Displayed text1</option>
<option value="unique_value2">Displayed text2</option>
</select>
Уникальные значения используются для выбора нужного элемента на стороне сервера.