• Nenhum resultado encontrado

Programação em ASP S. P net

N/A
N/A
Protected

Academic year: 2021

Share "Programação em ASP S. P net"

Copied!
26
0
0

Texto

(1)

Programação em

ASP.net

(2)



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



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

(3)



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

2

 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

(4)



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



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

(5)



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

4



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

(6)



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; } }

(7)

2 - Aceder à informação - Propriedades



Definir propriedade publica na página inicial

public string Cidade{ get

{

return ddlCidade.SelectedItem.Text; }}

6



Definir uma referência na página destino para a página

inicial



Na página destino aceder à propriedade

<%@ PreviousPageType

VirtualPath="~/SourcePage.aspx" %>

(8)



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



Redirecting Users to Another Page

http://msdn2.microsoft.com/en-us/library/x3x8t37x.aspx



How to: Pass Values Between ASP.NET Web Pages

(9)

Ciclo de vida da página

Ciclo de vida da página

(10)

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



Designer file – xxx.aspx – que contém declarações de

controlos HTML e eventos.

Public parcial class _Default

protected void Page_Load(object sender, EventArgs e)

{if (!Page.IsPostBack) …

(11)

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.

10



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

(12)

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.



Permite a definição dinâmica da Master Page e do

theme aplicado à página.

protected override void OnPreInit(EventArgs e) { //custom code

(13)

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

12

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

(14)

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

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"

(15)

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

14

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

(16)

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"; }

(17)



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

16



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

(18)



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,

(19)

<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"/> 18 runat="server"/> &nbsp; <asp:Button id="Button2" Text="Sort Descending" CommandName="Sort" CommandArgument="Descending" OnCommand="CommandBtn_Click" runat="server"/> <br><br>

(20)

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. // 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 == "") …

(21)



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; }

(22)



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();

HyperLink hl = new HyperLink();

hl.Text = str;

hl.NavigateUrl = str;

PanelLinks.Controls.Add(hl);

LiteralControl lc = newLiteralControl("<br>");

PanelLinks.Controls.Add(lc);

}

(23)



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++)

22

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); }

(24)

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  Aplication state

 Request Cookie Collection  Response cookie Collection  Headers Collection

 Response headers collection  Form Collection

 QueryString Collection  Server variables

(25)

Trace



Inserir Informação no Trace

Trace.Warn("debugging", "Radio Button

SelectedIndexChanged ");



Excerto da Informação de trace

aspx.page

End ProcessPostData

aspx.page

Begin PreLoad

aspx.page

End PreLoad

24

aspx.page

End PreLoad

aspx.page

Begin Load

aspx.page

End Load

aspx.page

Begin ProcessPostData Second Try

aspx.page

End ProcessPostData Second Try

aspx.page

Begin Raise ChangedEvents

debugging

Radio Button SelectedIndexChanged

(26)

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

[Walkthrough: Using Tracing in Visual Web Developer to Help

Find Web Page Errors]

Referências

Documentos relacionados

Curvas de rarefação (Coleman) estimadas para amostragens de espécies de morcegos em três ambientes separadamente (A) e agrupados (B), no Parque Estadual da Ilha do Cardoso,

Em relação às unidades orgânicas será importante proceder a uma avaliação do impacto (em termos económicos, recursos humanos e outros) que permita avaliar o contributo ou a

Intervenção para promover habilidades sociais e reduzir problemas de comportamento de crianças em um núcleo social.. Intervention to promote social skills and to reduce child behavior

Medição de Radiação Térmica com Modulador Sigma-Delta Termoresistivo Tese de Doutorado em Engenharia Elétrica - Valter Rosa - UFBA-SET2016.. Figura 4.9 Foto da bancada de testes

Examinamos as demonstrações financeiras individuais da Klabin S/A (“Companhia”), que compreendem o balanço patrimonial em 31 de dezembro de 2016 e as respectivas demonstrações

Área de Concentração: TEORIAS E CRÍTICA DA LITERATURA E DA CULTURA Linha de Pesquisa: CRÍTICA E PROCESSOS DE CRIAÇÃO EM DIVERSAS LINGUAGENS Projeto de Pesquisa: TRADUÇÃO, PROCESSO

Corporate Control and Policies Page 12 UNIVERSIDAD DE PIURA UNIVERSIDAD DEL PACÍFICO UNIVERSIDAD ESAN UNIVERSIDAD NACIONAL AGRARIA LA MOLINA UNIVERSIDAD NACIONAL

Estudo do manual do fabricante; identificação dos comandos e dos dispositivos de segurança; inspecção prévia; arranque com segurança, aquecimento e ensaio dos equipamentos;