Desenvolvimento de Aplicações Web na plataforma Microsoft Programando eventos Academia de Ensino Superior - Prof. André Morais Programando eventos • Objetivos – Visão geral sobre o protocolo HTTP – Problemas encontrados em servidores Web – Como funciona o código no lado do servidor – Como o evento se relaciona com os controles posicionados na página Academia de Ensino Superior - Prof. André Morais Programando eventos • Arquitetura de um servidor Web – HTTP: método de comunicação com servidores web; – O browser só entende HTML e linguagens script (Javascript por exemplo); – O browser trabalha enviando comandos ao servidor; – Os tipos mais comuns de comando são GET e POST. Academia de Ensino Superior - Prof. André Morais Programando eventos • HTTP é stateless – Stateless é um termo que denomina a ausência de estado; – Dizer que o HTTP é stateless significa que cada requisição não guarda informações; – HTML também não ajuda pois a linguagem não permite armazenar conteúdo; – Mas porque isso é um problema? Academia de Ensino Superior - Prof. André Morais Programando eventos Sem armazenar estado, ao ir ao próximo formulário a informação se perde! Porém, ao usar server-controls estas informações, neste caso, não serão perdidas! Academia de Ensino Superior - Prof. André Morais Programando eventos • Eventos do lado servidor – Até o momento tivemos uma visão bem simples da interação com um servidor web... – Mas o que realmente acontece quando um botão é pressionado? Academia de Ensino Superior - Prof. André Morais Programando eventos • Eventos – Ao clicar no botão acontece um evento! – Quando um evento acontece podemos dizer que o mesmo é disparado; – Quando um evento é disparado, um código é rodado. Este código é chamado de event handler ou tratador de evento; – Cada botão tem o seu próprio event handler Academia de Ensino Superior - Prof. André Morais Programando eventos • Veja: Academia de Ensino Superior - Prof. André Morais Programando eventos • Entendendo eventos em uma página Academia de Ensino Superior - Prof. André Morais Programando eventos • Postback – Permite verificar se uma página está sendo acessada pela primeira vez (*); – Pode ser acionado no código através do comando Page.IsPostBack Academia de Ensino Superior - Prof. André Morais Programando eventos Ação Page Página é carregada Página Botão é clicado Página Navegar até a página 2 Página Retornar a página 1 Página 1 1 2 1 Controle Evento IsPostBack Page_Load false Botão Button1_Click true Page_Load false false Page_Load Academia de Ensino Superior - Prof. André Morais Programando eventos • Eventos disponíveis – Quais eventos estão disponíveis? – Como eu posso encontrar os eventos? – Quais eventos devo usar? Academia de Ensino Superior - Prof. André Morais Programando eventos • Quais eventos estão disponíveis? Como eu posso encontrar os eventos? Perceba que o nome dos eventos muda de acordo com o controle selecionado! Academia de Ensino Superior - Prof. André Morais Programando eventos • Quais eventos devo usar? Controle Button DropDownList ListBox Evento Click É disparado quando... O botão é disparado SelectedIndexChanged O usuário mudou a seleção de um item O status do checkbox ou do radiobutton mudou. Neste caso, quando ele foi marcado ou desmarcado A seleção de uma lista de checkbox ou radiobuttons mudou A data selecionada mudou A exibição do mês mudou CheckBox RadioButton CheckChanged CheckBoxList RadioButtonList SelectedIndexChanged SelectionChanged VisibleMonthChanged Calendar Academia de Ensino Superior - Prof. André Morais Programando eventos • Desenvolvendo um cadastro de usuário: – Nome – Cidades preferidas • São Paulo • Sorocaba • Rio de Janeiro – Sexo – Estado civil • Procura parceiro(a)? – Escolaridade • Tem interesse em cursos de pós-graduação? – Data de nascimento • Gostaria de participar do programa de 3 idade? Academia de Ensino Superior - Prof. André Morais Programando eventos • Eventos globais – Nem só controles disparam eventos. Os eventos da aplicação (application events) são disparados pelo ASP.NET em resposta a algumas condições; – Essas ações estão relacionadas a aplicação e não apenas a uma página específica! – Elas são armazenadas em um arquivo chamado global.asax Academia de Ensino Superior - Prof. André Morais Programando eventos • Principais eventos disponíveis no arquivo global.asax: – Application_Start: Disparado quando o primeiro usuário acessa a aplicação; – Application_Stop: Disparado quando a aplicação pára; – Session_Start: Disparado quando o usuário inicia uma sessão, ou seja, sempre que um usuário acessa a aplicação; – Application_Error: Ocorre quando uma erro não tratado acontece; Academia de Ensino Superior - Prof. André Morais