Я немного поработал над динамическими элементами управления и ViewState.Почему ASP.NET динамические элементы управления сохраняют ViewState даже при добавлении в Page_Load?
И я прочитал, что для того, чтобы сохранить ViewState для динамического контроля, вы должны добавить его в событие Page_Init. Это имеет смысл, потому что PageLifeCycle:
- Инициализация.
- LoadViewState.
- LoadPostbackData.
- Нагрузка.
- RaisePostbackEvent.
- SaveViewState.
- Рендеринг.
Но я сделал тестовое приложение, и я увидел, что значения ViewState и свойства сохраняются, даже если я добавлю элемент управления в событие Page_Load, а не после. Из этого я нашел противоречивую информацию. Некоторые говорят, что элементы управления могут догнать другого PageLifeCycle, говорят, что вы должны добавить их в Page_Init. Может ли кто-нибудь прояснить это для меня?
Также в MSDN я нашел:
Примечание Вы можете быть в состоянии уйти с загрузкой элементов управления в обработчик событий Page_Load и сохранение состояния просмотра должным образом. Он все зависит от того, устанавливаете ли вы какие-либо свойства динамически загружаемых элементов управления программно, и если да, то когда вы делаете это относительно строки Controls.Add (dynamicControl). Тщательное обсуждение немного выходит за рамки этой статьи, но причина, по которой это может работать, заключается в том, что метод Add() метода управления() (0) ( ) рекурсивно загружает состояние представления родителя в его дочерние элементы, даже , хотя состояние просмотра нагрузки этап прошел.
Но я не совсем понимаю это полностью, поэтому я надеюсь, что кто-то сможет это объяснить. Заранее спасибо.