PostBack e inicializaçoes de classes

Galbne_PT

Power Member
Boas ppl,

Vou expor um problema que até um noob descobria, mas eu estou à nora com isto.
Estou a começar a desenvolver uma pequena aplicação de em asp.net para gerir clientes. O que se passa é tenho programado mt em windows forms e em c# e informaram que o asp.net 2.0 em c# é mt parecido e até se aproveita as classes, eu contente com essa informação, vamos a por ao trabalha. mas agora deixando de palavriado e passar ao problema.

Tenho um classe Clients e "gera" o cliente, no evento de iniciar o pagina Default.aspx tenho
Código:
 private Clients clients;

protect void page..()
{
if (!page.ispostback) clientes = new clients();

label.text = clients.dateofbirth
}
Tenho nas informações a data de nascimento do cliente, ora o que eu quero fazer é alterar essa data de nascimento, mas qd eu carrego no botao de alterar ele faz o processo td mas ao iniciar a pagina ele dá erro a dizer que clients nao foi inicializada.
Há alguma maneira de manter a class inicializada após um postback? Têm alguma sugestão para este problema?

Cumps
 
"Há alguma maneira de manter a class inicializada após um postback?"

Há, guardando na Sessão, mas não é suposto ser usado para casos destes, se bem percebi o problema.

Apesar da linguagem ser a mesma, o Windows.Forms é bastante diferente do ASP.NET, principalmente na forma de pensar e de abordar os vários problemas.
Tens de pensar que o HTTP de base não guarda nenhum contexto entre pedidos, logo, cada página tem quase sempre de inicializar as suas variáveis quando é chamada.

Expõe melhor o teu problema.

Deves começar por perceber o "Page Life Cycle" do ASP.NET, por exemplo aqui.
 
Última edição:
Boas, Obrigado SoundSurfer,

Pois já quem me informou tb não sabe mt do assunto ta visto, mas pronto... mas agora tenho de fazer :(.
O que eu pensava que se podia fazer era manter a classe inicializada, alterar valores na classe e só depois por exemplo enviar os dados da classe para a base de dados, mesmo fazendo o postback, pelo k vi do url k mandaste não dá :P

A solução que arrangei é mesmo usar a classe iniciada e por em Session.

O problema é : tenho um campo da data, qd carrego no botao mostra o calendario, cada vez que carrego no calendario ele faz o postback, entretanto tenho o event de cada click no calendario atribui a data seleccionada na classe, mas a data não aparece! só aparece se fizer outro postback. isso com a inicializacao da classe em Session.

Agora há alternativas? ou tenho de pensar de outra maneira? Conhecem alguns tutorials com esse tipos de exemplos.

Cumps
 
Uma dica: tenta não pôr a classe no Session. Experimenta por exemplo guardar valores entre request com campos escondidos... por exemplo asp:HiddenField ... o valor dos campos é automaticamente inicializado pelo asp.net quando fazes o PostBack, tens é de ver em que faze do ciclo de vida é que ele faz isso.

Outra alternativa é guardar os dados no ViewState... isto tudo porque a Session é partilhada pelas várias janelas do browser...
 
Back
Topo