Programação em ASP.net



Documentos relacionados
Programação em ASP S. P net

Repeater no GASweb. Regiões

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

LAB12: Componentes ASP.NET

NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos aplicar os temas e os skins.

AJAX no GASweb. Mas e afinal, para que usamos o AJAX?

Programação para Internet Avançada. 4. Web Services. Nuno Miguel Gil Fonseca

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Módulo 3936 ASP.NET. Financiado pelo FSE

Aula 06 Usando controles em ASP.NET

Login. Criar um novo website File > New > WebSite Framework 4.5 Visual C# ASP.NET Empty Web Site Nome do projeto: WebLogin

Capítulo 4. Programação em ASP

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. quarta-feira, 12 de setembro de 12

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

IHttpAsyncHandler. Para além destas duas interfaces, existe ainda uma outra,

1- ASP.NET - HTML Server Controls

Walkthrough: Creating a Web Site with Membership and User Login.

Desenvolvimento de aplicações Web. Java Server Pages

Introdução ao ASP.NET

Tecnologias para Web Design

Consulta de endereço através do Cep

Forms Authentication em ASP.NET


Ajax Asynchronous JavaScript and Xml

Java II. Sérgio Luiz Ruivace Cerqueira

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

INTRODUÇÃO AO DESENVOLVIMENTO WEB


Introdução. HyperText Markup Language HTML. Formulário. Fluxo do Formulário. Fluxo do Formulário. Fluxo do Formulário. Fluxo do Formulário

Ajax Asynchronous JavaScript and Xml

COMO FUNCIONA UM FORMULÁRIO

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

PHP. Hypertext Pre-Processor

HTML - 7. Vitor Vaz da Silva Paula Graça

Scriptlets e Formulários

Exemplo de Aplicaça o Facebook

Programação Na Web. Sessão II. Índice. Visão geral da API Sessão. Obter dados sobre uma sessão. Extrair informação sobre uma Sessão

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Cookies. Krishna Tateneni Jost Schenck Tradução: José Pires

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :

Criando um carrinho de compras

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Bases de Dados 2007/2008. Aula 9

Validando dados de páginas WEB

Catálogo Nacional de Compras Públicas. Manual de Fornecedores


Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

JavaScript (Funções, Eventos e Manipulação de Formulários)

Java II. Sérgio Luiz Ruivace Cerqueira

Ajax não é dependente dos servidores Web, e como tal poderá ser usado com PHP, JSP, ASP e ASP.NET.

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

PROGRAMAÇÃO WEB DO LADO DO CLIENTE

LINGUAGEM DE PROGRAMAÇÃO WEB

Construção Páginas de Internet

2.3. PHP Tipos de dados e operadores

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Respondendo a eventos

C# - Conexão com MySQL

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Bases de Dados. Lab 1: Introdução ao ambiente

Acronis Servidor de Licença. Manual do Utilizador

Computação Orientada aos Serviços. WF (parte 1) Semestre de Inverno 12/13

WEBDESIGN. Professor: Paulo Marcos Trentin - paulo@paulotrentin.com.br Escola CDI de Videira

Bem vindos ao Curso de ASP.NET MVC 3 Razor e C#

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

Guia e Utilização do Visual Studio 6.0

PACWEB Módulo de Pesquisa MANUAL DO UTILIZADOR

Desenvolvimento Web TCC Turma A-1

Java Server Pages. O código HTML pode indicar o método de arranque do servlet gerado por um JSP : doget ou dopost.

Guia de iniciação Bomgar B400

Procedimentos para a divulgação de eventos no site da ECUM

Tecnologias para apresentação de dados - Java Script. Aécio Costa

O código acima descreve o formulário com uma caixa de texto e dois botões

IFSC-Programação para a WEB - prof. Herval Daminelli

Programação Orientada a Objetos (DPADF 0063)

ADSE DIRETA MANUAL DE UTILIZAÇÃO PARA PRESTADORES DA REDE DA ADSE

Num sistema de objectos distribuídos, dois conceitos são fundamentais.


Programação para Internet I

Programação web Prof. Wladimir

Validação de formulário : CEP, e CPF

Linguagem de. Aula 06. Profa Cristiane Koehler

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

JSP - JavaServer Pages

Tarefa Orientada 15 Manipulação de dados

Criando documentação com javadoc

Profº. Enrique Pimentel Leite de Oliveira

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Sistemas para internet e software livre

Hugo Pedro Proença, 2007

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

AJaX Asy s nchronous s J avasc S ript p t a nd d XML

Mais sobre uso de formulários Site sem Ajax

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments

Transcrição:

Programação em ASP.net

Programação em ASP.net PostBacks, Round Trips Quando se faz um pedido de uma página.aspx o código da página é executado no servidor A cada pedido a página chama-se a si mesma de modo a executar o código outra vez. Como a página executa no servidor cada acção implica uma ida ao servidor. A web é inerentemente desconectada O browser e o servidor estão conectados apenas durante o tempo necessário para processar o pedido O pedido de uma página implica no servidor uma nova instância da página 1

Programação em ASP.net Ciclo de processamento da página Round Trip O utilizador solicita a página. (A página é solicitada usando um método HTTP GET). A página é executada pela primeira vez, executando processamentos preliminares se tiverem sido programados A página dinamicamente produz HTML para o navegador, semelhante a qualquer outra página HTML O utilizador interage com a página e submete a informação clicando num botão. A página é enviada para o servidor Web. ( O navegador executa um método HTTP POST, que no ASP.NET é conhecido como um postback). Especificamente, a página é remetida de volta a si mesma. No servidor Web, a página executa novamente. As informações que o utilizador introduziu estão disponíveis para o código da página. A página executa o processamento que estiver programado. A página dinamicamente produz HTML para o navegador, semelhante a qualquer outra página HTML 2

Programação em ASP.net Transferir informação (post) para outra página Usando hyperlinks na página Redireccionar programaticamente forçando o browser a pedir outra página Método Redirect Equivalente a um link Comando HTTP GET Informação transferida pela QueryString Redireccionar programáticamente transferindo o control para outra página na mesma aplicação Web Método Server.Transfer Comando HTTP POST Permite à página destino ler valores dos controlos e propriedades públicas da página inicial 3

Programação em ASP.net Cross-Page Configurar Cross-Page o que permite especificar outra página quando se faz post da corrente Cross-Page é a possibilidade de enviar informação para outras páginas Na página destino pode-se aceder às propriedades publicas da inicial e aos valores dos controlos. Definir no botão de submit a página destino PostBackUrl -> TargetPage.aspx 4

Programação em ASP.net Cross-Page (cont.) 1- Aceder à informação - Controlos Propriedade Page.PreviousPage Método FindControl if (Page.PreviousPage!= null) { TextBox SourceTextBox = (TextBox)Page.PreviousPage.FindControl( tbox1"); if (SourceTextBox!= null) { Label1.Text = SourceTextBox.Text; } } 5

Programação em ASP.net 2 - Aceder à informação - Propriedades Definir propriedade publica na página inicial public string Cidade{ get { return ddlcidade.selecteditem.text; }} Definir uma referência na página destino para a página inicial <%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> Na página destino aceder à propriedade Label1.Text = PreviousPage.Cidade; 6

Programação em ASP.net Links no MSDN: Cross-Page Posting in ASP.NET Web Pages http://msdn2.microsoft.com/en-us/library/ms178139(vs.80).aspx Redirecting Users to Another Page http://msdn2.microsoft.com/en-us/library/x3x8t37x.aspx How to: Pass Values Between ASP.NET Web Pages http://msdn2.microsoft.com/en-us/library/6c3yckfw.aspx 7

Ciclo de vida da página

Ciclo de vida da página Modelo de compilação e classes parciais Uma Web Form deriva da classe System.Web.UI.Page Dois componentes: Code behind file- xxx.aspx.cs - contém o código para os eventos e outros métodos relacionados com a página Public parcial class _Default protected void Page_Load(object sender, EventArgs e) {if (!Page.IsPostBack) Designer file xxx.aspx que contém declarações de controlos HTML e eventos. <asp:radiobuttonlist ID="rbl" runat="server" AutoPostBack="True" OnSelectedIndexChanged="rbl_SelectedIndexChanged"> 9

Ciclo de vida da página Ciclo de vida da página Para cada pedido a página é instanciada de novo, perdendo todos os valores e estado anterior Para manter a informação tem de se usar um mecanismo de gestão de estado: Application, Session, Variáveis de Cache ou Cookies. A classe Page implementa o método ProcessRequest da interface IHttpHandler, responsável por todas as fases do ciclo de vida da página Durante a execução da página são lançados vários eventos. 10

Sequência de Eventos Sequência de Eventos 1 PreInit Todos os controlos criados no design são inicializados com os seus valores por omissão. Neste evento podem ser criados controlos dinâmicos. Pode-se fazer override do método. protected override void OnPreInit(EventArgs e) { //custom code base.onpreinit(e); } Permite a definição dinâmica da Master Page e do theme aplicado à página. 11

Sequência de Eventos 2 Init Os controlos da página são inicializados e a propriedade UniqueID de cada controlo é definida. Os skin são aplicados aos controlos. O ViewState dos controlos ainda não está disponível. 3 InitComplete Apenas ocorre quando é um postback e consiste na recuperação do estado interno da página através dos dados guardados no Viewstate e no ControlState. O estado interno dos controlos é actualizado com os dados provenientes do formulário enviado HTTP Post Data 4 Load Podem ser criados controlos dinâmicos e definidas propriedades dos controlos. O métod IsPostBack permite verificar se é um postback 12

Sequência de Eventos 4 Load (cont) São gerados os eventos servidores dos controlos. Por exemplo, o evento Click gerado pelo controlo Button. 5 PreRender Começa a fase de geração do HTML da página. É o ultimo evento onde se pode alterar o valor dos controlos. 6 SaveViewState, SaveControlState A página inicia o armazenamento dos dados internos mantidos por todos os controlos. Os dados são guardados num HTML input escondido <input type="hidden" name=" VIEWSTATE" id=" VIEWSTATE" value="/wepdwukmtk3mdmwmzewna. 13

Sequência de Eventos 6 - Render É gerado o HTML para todos os controlos existentes na árvore de controlos da página. O evento RenderControl é chamado recursivamente para todos os controlos. 7 UnLoad Permite efectuar a limpeza de eventuais recursos usados durante o processamento Links [ASP.NET Page Life Cycle] http://msdn2.microsoft.com/en-us/library/ms178472.aspx [ASP.NET Page Lifecycle] http://www.codeproject.com/useritems/lifecycle.asp http://codebetter.com/blogs/raymond.lewallen/archive/2005/03/10/59583.aspx 14

Eventos Exemplo de override de um evento A master page é acrescentada à página no evento PreInit. A alteração ou substituição da master page deve ser realizada nesse evento protected override void OnPreInit(EventArgs e) { base.onpreinit(e); //criar variáveis com o controlo da master Label lb = (Label)Page.Master.FindControl("LabelMaster"); lb.text = Texto alterado"; // pode tambem alterar a master page //Page.MasterPageFile = "~/MasterPage2.master"; } 15

Eventos Server Control Event Model Os eventos associados aos server control são originados nos clientes mas processados no servidor protected void Bt_Click(object sender, EventArgs e) { // código de processamento do evento } Asp.net captura o evento, transmite e interpreta o evento Apenas alguns eventos geram chamada ao servidor Button -> Click, Calendar -> SelectionChanged Para outros eventos é necessário AutoPostBack=true; CheckBox -> CheckedChange Server Controls não suportam eventos com grande ocorrência OnMouseOver, OnMouseOut 16

Eventos Argumentos dos eventos protected void Bt_Click(object sender, EventArgs e) Objecto que provocou o evento object sender Um objecto evento que contém informação específica sobre o evento EventArgs e CommandEventArgs e Propriedades: CommandName, CommandArgument protected void btsubmit_command(object sender, CommandEventArgs e) 17

Eventos Propriedades CommandName e CommandArgument Registo de multiplos eventos a um Event Handler <h3>button CommandName Example</h3> Click on one of the command buttons. <asp:button id="button1" Text="Sort Ascending" CommandName="Sort" CommandArgument="Ascending" OnCommand="CommandBtn_Click" runat="server"/> <asp:button id="button2" Text="Sort Descending" CommandName="Sort" CommandArgument="Descending" OnCommand="CommandBtn_Click" runat="server"/> <br><br> 18

Eventos void CommandBtn_Click(Object sender, CommandEventArgs e) { switch(e.commandname) { case "Sort": // Call the method to sort the list. Sort_List((String)e.CommandArgument); break; case "Submit": // Display a message for the Submit button being clicked. Message.Text = "You clicked the Submit button"; // Test whether the command argument is an empty string (""). if((string)e.commandargument == "") 19

Eventos Outros Eventos GridView RowDataBound Quando uma linha é carregada com informação Permite alterar os valores de uma coluna antes da apresentação ( p.e. fazer cálculos) RowCreated Quando uma linha é criada SelectedIndexChanged Quando um botão Select da grelha é carregado 20

Criação dinâmica de controlos protected String[] links= {"http://www.sapo.pt", http://www.tsf.pt, } foreach (String str in links) { HyperLink hl = new HyperLink(); hl.text = str; hl.navigateurl = str; PanelLinks.Controls.Add(hl); LiteralControl lc = newliteralcontrol("<br>"); PanelLinks.Controls.Add(lc); } 21

Controlo dinâmicos Registo de eventos num controlo dinâmico LinkButton lb = new LinkButton(); lb.command += new CommandEventHandler(this.TrataEvento); protected void TrataEvento(object sender, CommandEventArgs e) 22

Controlo dinâmicos Criação dinâmica de uma tabela int n = 5; int k = 0; Table ta = new Table(); for (int i = 0; i < n; i++) { TableRow tr = new TableRow(); for (int j = 0; j < n; j++) { TableCell tc = new TableCell(); tc.text = k.tostring(); tr.cells.add(tc); k++; } ta.rows.add(tr); } Panel1.Controls.Add(ta);} 23

Trace Trace Permite detectar erros na página e ver os vários eventos que ocorrem na página Document -> Properties - > Trace = true Informação gerada: Trace Information Control Tree Session state Aplication state Request Cookie Collection Response cookie Collection Headers Collection Response headers collection Form Collection QueryString Collection Server variables 24

Trace Inserir Informação no Trace Trace.Warn("debugging", "Radio Button SelectedIndexChanged "); Excerto da Informação de trace aspx.page aspx.page aspx.page aspx.page aspx.page aspx.page aspx.page aspx.page debugging aspx.page End ProcessPostData Begin PreLoad End PreLoad Begin Load End Load Begin ProcessPostData Second Try End ProcessPostData Second Try Begin Raise ChangedEvents Radio Button SelectedIndexChanged End Raise ChangedEvents 25

Trace O trace pode ser ligado para toda a aplicação sendo mostrada a informação noutra página Link MSDN [Walkthrough: Using Tracing in Visual Web Developer to Help Find Web Page Errors] http://msdn2.microsoft.com/en-us/library/yc8h9b0b(vs.80).aspx 26