Como você acessa Control.ViewState com uma subclasse de controle adicionados dinamicamente?
Pergunta
Nós criamos um controle que precisa persistir dados via a propriedade ViewState da classe de controle. Nossos subclasses da classe controlar rigorosamente para obter acesso à propriedade ViewState (é protegida no objeto página). Nós estamos adicionando o controle para Page.Controls em OnInit e, em seguida, tentar definir a propriedade ViewState em OnPreLoad.
Quando decodificar e analisar o ViewState da página, os nossos valores não foram escritos, e, portanto, não estão disponíveis para recuperação posterior.
Alguém sabe como podemos obter nosso controle de participar no processo de ViewState?
Solução
A questão é adicionar o controle para a página diretamente. Infelizmente, isso é muito alta se os controles de hierarquia para participar no manejo ViewState formulários. Se você adicionar o controle para a coleção Controls de ASPNet Form real em algum lugar, então ele irá participar com sucesso em LoadViewStateRecursive e SaveViewStateRecursive.
Outras dicas
Tente criar o seu controle em OnInit, em seguida, adicioná-lo aos Page.Controls durante OnLoad.
ViewState não é carregada até que após OnInit, mas antes AoCarregar.
Aqui está um esboço da página de Ciclo de Vida ( GregMac ) postou isso em uma resposta a uma pergunta anterior de meu.