Programação em ASP S. P net



Documentos relacionados
Programação em ASP.net

Repeater no GASweb. Regiões

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

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

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

LAB12: Componentes ASP.NET

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

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

Aula 06 Usando controles em ASP.NET

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

Módulo 3936 ASP.NET. Financiado pelo FSE

Desenvolvimento de aplicações Web. Java Server Pages

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

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

Consulta de endereço através do Cep

Capítulo 4. Programação em ASP

PHP. Hypertext Pre-Processor

Tecnologias para Web Design

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

Forms Authentication em ASP.NET

Java II. Sérgio Luiz Ruivace Cerqueira


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

Ajax Asynchronous JavaScript and Xml

Ajax Asynchronous JavaScript and Xml

INTRODUÇÃO AO DESENVOLVIMENTO WEB

Introdução ao ASP.NET

1- ASP.NET - HTML Server Controls


Scriptlets e Formulários

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

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

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

2.3. PHP Tipos de dados e operadores


Sistemas para internet e software livre

Java II. Sérgio Luiz Ruivace Cerqueira

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

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

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

LINGUAGEM DE PROGRAMAÇÃO WEB

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

Criando um carrinho de compras

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

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

Linguagem de Programação III Aula 2 Revisão Parte II

Validando dados de páginas WEB

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

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

DWEB. Design para Web. HTML5 - Marcação de formulário. Curso Superior de Tecnologia em Design Gráfico

Guia e Utilização do Visual Studio 6.0

HTML Básico Formulários. Matheus Meira

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

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

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

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

Construção Páginas de Internet

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

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

COMO FUNCIONA UM FORMULÁRIO

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

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


Linguagem de. Aula 06. Profa Cristiane Koehler

Programação para Internet I

Tecnologias Web. Formulários HTML

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

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

Desenvolvimento Web TCC Turma A-1

Exemplo de Aplicaça o Facebook

JSP - JavaServer Pages

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

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

PROGRAMAÇÃO WEB DO LADO DO CLIENTE

Java para Desenvolvimento Web

Sessões. Cookies HTTP Sessões Atributos de sessão

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

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

Programação WEB II. Formulários Em PHP. Métodos GET e POST progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Especialização em Engenharia de Software - CEUT

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

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Bases de Dados 2007/2008. Aula 9

Desenvolvimento Web XHTML Formulários. Prof. Bruno E. G. Gomes

Curso de Java. Geração de Páginas WEB através de JSP. Todos os direitos reservados Klais

Associação Carioca de Ensino Superior Centro Universitário Carioca

C# - Conexão com MySQL

Acronis Servidor de Licença. Manual do Utilizador

Programação II Programação para a Web. Christopher Burrows

Programação Orientada a Objetos (DPADF 0063)

PHP (Seções, Cookies e Banco de Dados)

Programação web Prof. Wladimir

Gestão de projectos na Web

Programando em PHP. Conceitos Básicos

Java para WEB. Servlets

Transcrição:

Programação em ASP.net

PostBacks, Round Trips A web é inerentemente desconectada O browser e o servidor estão conectados apenas durante o tempo necessário para processar o pedido 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. O pedido de uma página implica no servidor uma nova instância da página 1

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

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 -Response.Redirect(string url, ) Equivalente a um hyperlinks 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

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 nas propriedades do botão de submit a página destino PostBackUrl -> TargetPage.aspx 4

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

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

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 no servidor 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 é embebida com a página no evento PreInit. A alteração do conteúdo 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

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 control não suportam eventos com grande ocorrência OnMouseOver, OnMouseOut 16

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

<h3>button CommandName Example</h3> Click on one of the command buttons. <br><br> <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

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 == "") [http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.commandeventargs(vs.80).aspx] 19

GridViewRowEventArgs RowCreated - método ocorre quando é criada uma row na gridview protected void GridDatalhesFactura_RowCreated(object sender, GridViewRowEventArgs e) { // torna invisiveis colunas da grelha e.row.cells[0].visible = false; e.row.cells[2].visible = false; e.row.cells[3].visible = false; } 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

Criação dinamica 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); } 22

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 23

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 24

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 25