Como você acessa Control.ViewState com uma subclasse de controle adicionados dinamicamente?

StackOverflow https://stackoverflow.com/questions/130705

  •  02-07-2019
  •  | 
  •  

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?

Foi útil?

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.

  • Inicializar
  • LoadViewState
  • Load Postback de dados
  • eventos Load Control Chamada
  • Load Chamada evento
  • eventos de controle de chamadas
  • Controle PreRender
  • PreRender
  • SaveViewState
  • Descarregar

  • Licenciado em: CC-BY-SA com atribuição
    Não afiliado a StackOverflow
    scroll top