Pergunta

Estou criando um formulário web multi-parte no ASP.NET que utiliza painéis para as diferentes etapas, fazendo apenas o Painel para a etapa atual visível. Na Etapa 1, eu tenho uma lista suspensa que usa uma função Javascript para reconfigurar alguns dos campos na mesma Painel via "onchange". Obviamente, uma vez que o script do lado do cliente só está afetando o DOM, quando eu ir para a Etapa 2 e, em seguida, fazer backup em Passo 1, os campos no Passo 1 está de volta à sua configuração orignal embora o mesmo drop-down escolha é selecionada.

O que é um bom método para armazenar o estado visual dos painéis entre as etapas? Pensei em ligar a função onchange do drop-down no carregamento da página, mas que parecia desajeitado. Obrigado!

-

Obrigado pelas respostas rápidas - Acho que vou experimentar o Wizard, mas a solução AJAX também parece divertido

.
Foi útil?

Solução

Você pode considerar um controle Wizard ASP.Net para this- que irá automatizar muito do que você está tentando fazer.

Outras dicas

Eu sugiro que você use o controle MultiView, que é digamos semanticamente mais apropriado. E, em seguida, armazenar esses dados no ViewState. Eu escrevi algo semelhante e rochas.

Eu acho que sua melhor aposta é para manter todo o seu estado em um lugar, ou não mantêm qualquer estado em tudo. O principal problema que você está tendo é sincronizar o estado do lado do cliente com o seu estado do lado do servidor.

Tente mostrar / esconder seus painéis com javascript em vez de postagem de volta, se possível. Se não, use alguns ajax para atualizar valores no lado do servidor, logo que eles são selecionados, em vez de quando você clica no botão seguinte / anterior.

Caso contrário, você poderia usar algo como ASP.Net Ajax Toolkit Tabs para ajudar com as transições.

Espero que ajude!

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