De início a lição começa explicando sobre os eventos mais comuns que são manipulados no arquivo Global.asax:
- Application_Start: É executado quando a aplicação é iniciado no servidor, muito comum quando é feito o acesso do primeiro usuário.
- Application_End: Quando a aplicação é finalizada. Pode ocorrer quando você para a aplicação pelo IIS ou quando é feito o servidor é reiniciado ou desligado.
- Application_Error: Como o nome já explica é executado quando ocorre um erro na aplicação.
- Application_LogRequest: É executado quando é feita uma requisição a aplicação, é usado para gravar informações especificas da requisição.
- Application_PostLogRequest: É executado quando é concluida uma requisição feita ao sistema.
Em seguida na lição inicia a explicação do ciclo de vida da página, com certeza a maior dificuldade para programadores de aplicações windows que migram para o ambiente web, pois não estão acostumados com essa situação.
Os eventos mais comuns e em ordem de execução de uma página são os seguintes:
- PreInit: É o primeiro evento que o desenvolvedor pode manipular de uma página, é muito utilizado para definir valores de Master Page ou Temas em tempo de execução. Caso não utilize Master Page é neste evento que você pode criar controles dinamicamente.
- Init: Este evento é executado depois que todos controles foram instanciados, aqui você pode alterar os valores de iniciação dos controles. Caso utilize Master Page é neste evento que deve adicionar os controles dinamicamente.
- InitComplete: Executado quando todas as inicializações estiverem completas.
- PreLoad: Executado antes da viewstate ser carregada e antes de ocorrer o processo de Postback. Necessário quando você precisa que os controles estejam iniciados e antes da viewstate ser restabelecida.
- Load: A página está estável e iniciada. O Evento Load da página é chamada primeiramente, em seguida todos os eventos Load dos controles são executados hierarquicamente.
- LoadComplete: Neste evento todos os controles são carregados.
- PreRender: Este evento ainda permite que alterações finais aos controles. Ocorre depois dos eventos de postback ter ocorridos, e ainda a viewstate não foi salva, ainda permitindo alterações.
- SaveStateComplete: Neste evento a viewstate esta pronta. Qualquer alteração feita neste momento ou depois serão ignoradas. Este evento é util quando você precisa justamente que a viewstate esteja pronta.
- Render: O Render é um método e não um evento, o asp.net chama este método para cada controle. Este método gera os códigos html e todos os outros necessários para exibição da página ao cliente.
- Unload: Este evento é utilizado para liberação de recursos, até pode ser executado manualmente mas é um processo pouco comum.
protected void Page_PreInit(object sender, EventArgs e)
{
// Create instances of the controls
Label FeedbackLabel = new Label();
TextBox InputTextBox = new TextBox();
Button SubmitButton = new Button();
// Assign the control properties
FeedbackLabel.ID = "FeedbackLabel";
FeedbackLabel.Text = "Please type your name: ";
SubmitButton.ID = "SubmitButton";
SubmitButton.Text = "Submit";
InputTextBox.ID = "InputTextBox";
// Create event handlers
SubmitButton.Click += new System.EventHandler(SubmitButton_Click);
// Add the controls to a Panel
Panel1.Controls.Add(FeedbackLabel);
Panel1.Controls.Add(InputTextBox);
Panel1.Controls.Add(SubmitButton);
}
protected void SubmitButton_Click(object sender, EventArgs e)
{
// Create an instance of Button for the existing control
Button SubmitButton = (Button)sender;
// Update the text on the Button
SubmitButton.Text = "Submit again!";
// Create the Label and TextBox controls
Label FeedbackLabel = (Label)FindControl("FeedbackLabel");
TextBox InputTextBox = (TextBox)FindControl("InputTextBox");
// Update the controls
FeedbackLabel.Text = string.Format("Hi, {0}", InputTextBox.Text);
}
A lição explica como criar os eventos da página, no caso do vb você deve utilizar os dois ComboBox que estão na parte superior no arquivo de código. E no caso do c#, basta escrever o código, pois a propriedade AutoEventWireup por padrão é true, não necessitando mais nenhuma associação.
Outro processo comum utilizado pelos desenvolvedores e explicados é o PostBack automático. Alguns controles como o botão executam o postback automaticamente quando seu evento é acionado. Mas no caso do evento TextChanged do TextBox por exemplo ele não executa o PostBack automaticamente, é necessário alterar a propriedade AutoPostBack para true, caso não faça isso, o evento TextChanged só será executado quando outro controle executar o PostBack no formulário como por exemplo um clique do botão.
Neste caso como ocorre: O usuário alterou o texto do textBox, nada acontece pois a propriedade esta como false, em seguida o usuário clica no botão. O primeiro evento a ser executado é o TextChanged que estava aguardando um postback ocorrer, em seguida é executado o evento clique do botão.
Se quiser que o TextChanged seja executado assim que o texto seja alterado altere a propriedade AutoPostBack para true.
Assim finaliza esta lição.
Abraços...
Nenhum comentário:
Postar um comentário