Por que os controles dinâmicos do ASP.NET podem manter o ViewState mesmo quando adicionado em Page_Load?

Eu fiz um pouco de pesquisa relacionada aos controles dinâmicos e ao ViewStat

E eu li que, para manter o ViewState para um controle dinâmico, você deve adicioná-lo no evento Page_Init. Faz sentido porque o PageLifeCycle é:

Inicialização. LoadViewState. LoadPostbackData.Carga RaisePostbackEvent. SaveViewState. Render.

Mas eu fiz um aplicativo de teste e vi que os valores do ViewState e das propriedades são preservados, mesmo se eu adicionar o controle no evento Page_Load e não depois. A partir daí, só encontrei informações contraditórias. Alguns dizem que os controles podem recuperar o PageLifeCycle, outros dizem que você deve adicioná-los no Page_Init. Alguém pode esclarecer isso para mim

Também no msdn eu encontrei:

Nota Você pode conseguir carregar seus controles no manipulador de eventos Page_Load e manter o estado de exibição corretamente. Tudo depende se você está definindo ou não propriedades dos controles carregados dinamicamente programaticamente e, se houver, quando o faz em relação à linha Controls.Add (dynamicControl). Uma discussão completa sobre isso está um pouco além do escopo deste artigo, mas a razão pela qual ele pode funcionar é porque o método Add () da propriedade Controls carrega recursivamente o estado de exibição do pai em seus filhos, mesmo que o estágio do estado de exibição de carregamento tenha passado.

Mas eu realmente não entendo isso completamente, então espero que alguém possa explicar isso. Agradeço antecipadamente

questionAnswers(6)

yourAnswerToTheQuestion