+2 votos
81 visitas
No Jurídico, cadastro de Pessoas, ao alterar para uma classificação de pessoa em específico, ocorre o erro abaixo:

Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was uses to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.
por (11 pontos) | 81 visitas

1 Resposta

+1 voto

O Problema

Se você adicionar um controle dinamicamente na pagina, digamos (ControlA), e o viewstate de controle estiver ativado, e no próximo postback você adicionou um controle diferente (ControlB) com a mesma chave.

Quando o asp.net tenta carregar a viewstate do controle contido antigo, ele vai esperar o ControlA, mas ele vai encontrará outro (ControlB) e isso "Vai dar o erro".

É importante você também o evento no qual os controles dinamicamente estão sendo adicionado.

Se adicionar controles aos eventos que ocorrem após o carregamento, eles farão parte do estado de exibição que você envia ao cliente. Você precisará adicionar esses controles novamente antes de LoadViewStateser chamado.

Consulte o ciclo de vida da página asp.net

Solução

Não adicionar controles diferentes em cada post da pagina. Criar todos os dipos que voce precisa, e mudar sua se está visibel ou não.

Ou você pode definir EnableViewState=false no controle que não precisar do viewstate

por (929 pontos)

Perguntas relacionadas

+2 votos
1 resposta
perguntado 24 Dez, 2019 por maicon.pereira (623 pontos) | 28 visitas
+2 votos
1 resposta
perguntado 6 Dez, 2019 por alan.jantz (145 pontos) | 29 visitas
+2 votos
2 respostas
perguntado 26 Jun, 2015 por ricardo.caresia (23 pontos) | 85 visitas
+1 voto
1 resposta
perguntado 29 Nov, 2019 por bruno.reis (40 pontos) | 35 visitas
+2 votos
1 resposta
439 perguntas
486 respostas
350 comentários
473 usuários