erro ViewState: usuários simultâneos modificando controles dinâmicos
-
06-07-2019 - |
Pergunta
Tenha uma página que adiciona controles dinamicamente. estado de controlo está a ser recuperada a partir da base de dados e controlos são re-adicionado à página na nova colocação. O usuário pode adicionar / controles de exclusão através da interface do usuário. Quando dois usuários estão na mesma página e se acrescenta / controles remove a outro usuário receberá erro ViewState próxima vez que ele tentar modificar o estado de controle.
" Falha ao viewstate carga. A árvore de controle no qual viewstate está sendo carregado deve coincidir com a árvore de controle que foi usado para salvar viewstate durante a solicitação anterior. Por exemplo, ao adicionar controles dinamicamente, os controles adicionados durante um post-back deve corresponder ao tipo e posição dos controles adicionados durante a solicitação inicial ".
Isso ocorre porque quando a página é desenhada eu uso um conjunto de controles e fico com um conjunto diferente de controles no postback porque o estado de controle foi modificado pelo usuário diferente.
Eu entendo o erro e por que seu acontecimento, mas eu acho que eu estou faltando alguma coisa aqui. Existe uma maneira de ter uma página que dinamicamente adiciona controles e pode lidar com usuários simultâneos que modifiy o estado de controles?
Solução
Você precisa separar o do usuário atual estado do mestre , ou global, estado. Na postagem, em vez de construir a sua árvore de controle com base na definição mestre no banco de dados, carregar uma árvore de controle em cache que é específico para o usuário atual. Depois de ter passado a reconstrução ViewState, em seguida, iniciar o seu processo de reconciliação - se isso é automática ou necessidades para carregar outro UI para permitir ao usuário a participar está fora do âmbito da pergunta ??p>.
O ponto é que você precisa para manter "ramos" do mestre em uma base por usuário e comprometer e ler de uma forma mais controlada.