ControlAdapter.LoadAdapterViewState запускается перед Control.LoadViewState?

Я пишу адаптер DropDownList, чтобы добавить 2 функции к встроенному DropDownLists, используя комбинацию следующих решений:

  1. Поддержка OptionGroup
  2. Сохранение пользовательских атрибутов при обратной передаче

Это прекрасно работает, если элементы DropDownList объявлены в разметке. Однако, когда элементы добавляются динамически, я полагаюсь на элементы, восстанавливаемые из ViewState.

Проблема в том, что ControlAdapter.LoadAdapterViewState вызывается ДО Control.LoadViewState, поэтому я не могу повторно применить свои атрибуты OptionGroup/Custom к Items, поскольку они еще не существуют.

Итак, во-первых, в чем причина такого порядка событий?

И, во-вторых, где еще в жизненном цикле я могу безопасно установить эти настраиваемые атрибуты обратно для элементов? Примечание. PreRender нельзя использовать, так как ViewState теряется, если элемент управления не работает. для отображения на странице (например, в мастере).


person Brett Postin    schedule 13.09.2012    source источник