Usuário com melhor resposta
Desenvolvimento Web Forms

Pergunta
-
Pessoal,
Bom dia,
Comecei a pouco tempo desenvolver em Web Forms. Esses dias me deparei com a seguinte situação:
Tenho uma tela que o usuário deve realizar varias operações antes de salvar as informações no banco de dados. A estratégia que adotei foi armazenar os dados na sessão até que seja confirmado a operação.
Minha dúvida é a seguinte. É um boa prátrica armazenar essas informações na sessão? Tem outra forma de fazer isto? Um padrão?
Obrigado.
@MiltonSJr
Respostas
-
Oi Milton, pelo que entendi voce esta persistindo os dados na sessao e gostaria de saber se este é o melhor caminho, certo?
Bem, se está no mesmo form eu utilizaria a ViewState. Para armazenar na ViewState voce cria uma chave nela (identico ao uso da Session mas voce troca a propriedade Session pela ViewState).
Voce pode ir mantendo os dados na ViewState até o momento de salva-los no banco. Quando for salvar, basta passar a chave da ViewState.
- Marcado como Resposta Milton da Silva quarta-feira, 26 de outubro de 2011 16:42
Todas as Respostas
-
Milton,
Eu costumo trabalhar na maioria dos meus projetos com chamadas assincronas para o servidor, via ajax. Assim mantenho as informações na interface do usuário sem gerar requests adicionais, preservando meu servidor e a experiência do usuário.
Dependendo do formulário, caso ele seja bastante extenso e o usuário demore para preencher você pode ter alguns problemas com sessão expirada e coisas do tipo.
Abraço!
-
Edjan,
Como vc faria na seguinte situação:
Na tela tenho um combo que lista Tipos de testes.
Mais embaixo tenho dois listBoxs. O primeiro lista todos os testes do tipo selecionado no combo.
No segundo listbox fica os teste que estao vinculados.
Quando o usuario mudar o combo, o listbox de testes disponiveis é populado perdendo os anteriores, porém ele devem ser salvos no banco.
Esse salvar é somente no final de tudo.
Obrigado.
@MiltonSJr -
Milton,
Preencho no load da página o combo de tipo de testes e desabilito os dois listbox.
No evento(javascript) change do combo, disparo uma requisição a um serviço(asmx ou wcf, até mesmo rest, de preferência que tenha resposta mais curta) e preencho as listas com a resposta, de acordo com a opção selecionada do usuário.
Com bibliotecas javascript como o jquery esse trabalho fica muito simples, já que ele faz todo gerenciamento do httprequest pra ti.
Tem um exemplo aqui de master/detail com jquery e asp.net mvc:
http://www.leandroprado.com.br/2010/11/formulario-master-detail-com-asp-net-mvc-e-jquery/
Você consegue achar diversos outros exemplos na internet.
Abraço!
-
-
A necessidade do uso está ai, mas caso você não queira utilizar efetivamente wcf ou soap, tu pode criar um Generic Handler para retornar uma string para ti.
Segue um exemplo:
Abs
-
Oi Milton, pelo que entendi voce esta persistindo os dados na sessao e gostaria de saber se este é o melhor caminho, certo?
Bem, se está no mesmo form eu utilizaria a ViewState. Para armazenar na ViewState voce cria uma chave nela (identico ao uso da Session mas voce troca a propriedade Session pela ViewState).
Voce pode ir mantendo os dados na ViewState até o momento de salva-los no banco. Quando for salvar, basta passar a chave da ViewState.
- Marcado como Resposta Milton da Silva quarta-feira, 26 de outubro de 2011 16:42