Pergunta

Eu tenho duas partes da web que se comunicam. O provedor não pode dar um valor (um RID) para o consumidor até pelo menos evento Page_Load do provedor. Assim, o consumidor não pode saber o RID ele precisa até depois Page_Load. Então, eu viciado em Page_LoadComplete. Agora há um problema. O consumidor cria controles dinâmicos baseados nesta RID.

Agora. Estes controles dinâmicos criados são criados depois Page_Load. Assim, sua viewstate não é restaurada (controles dinâmicos criados dentro Page_Load têm seus valores restaurado embora).

Então, basicamente o que eu preciso é uma maneira de restaure viewstate de um controle manualmente, ou para obter o valor do controle de uma variável POST ou o equivalente em C # ..

Além disso, se eu pudesse obter o valor de um controle em Page_Init, que iria trabalhar muito.

Foi útil?

Solução

Todas as informações de voltar de uma pós em na chave Request.Form / valores pares. Se você verificar lá e procurar o ID de controle nas chaves, você pode obter o valor sem olhar através do estado de exibição.

Você provavelmente vai ter que olhar através de cada chave e pesquisa para o qual chave contém o nome do controle, porque a chave será o ID do cliente e não o ID especificado.

Outras dicas

Se os controles são dinâmicos, eles não vão estar em ViewState até que ocorra uma nova postagem. Então ViewState não é utilizável na carga inicial, a menos que você adicioná-los à ViewState si mesmo.

ViewState.Add("myRID", RID)

Ou você pode salvá-lo em SessionState, e não sobrecarregar ViewState desde ViewState tende a ficar muito grande de qualquer maneira. Eu iria com SessionState.

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