Я удивлен, но заинтересован в твоих результатах. Когда я работаю с динамическими элементами управления, я всегда добавляю их в Page_Init
. Все остальное не работает. Но вы правы - как это сделать, если вы добавляете их в ответ на нажатие кнопки.
Единственный способ, который я нашел, это изучить коллекцию Request.Form("__EVENTTARGET")
на PageInit
. Он содержит идентификатор элемента управления, который вызвал обратную передачу, например, нажатие кнопки. Конечно, он будет определяться по именующим контейнерам, в которых он появляется. Как только вы определили «событие» этим методом, вы можете добавить нужные элементы управления.
Конечно, все это немного глупо, но это единственный способ, который я нашел, делая эти вещи. Это работает.
Интересно, что ViewState
доступен на PreRender
, если вы добавите элементы управления на Page_Load
. Но, как видно из приведенной выше ссылки, вам уже поздно помогать. Состояние контроля повторно гидратируется во время цикла загрузки. Если его там нет, то ваше состояние управления или динамические элементы управления просто исчезнут.