asp.net - karina oliveira 1 conteúdo 1introdução 2criando e executando um exemplo de formulário...

29
1 ASP.NET - Karina Oliveira Conteúdo 1 Introdução 2 Criando e Executando um Exemplo de Formulário Web Simples 3 Controles Web (Web Controls) 3.1 Trabalhando com Controles do Servidor 3.2 Persistindo Valores entre Web Forms ASP.NET

Upload: thiago-apolinar

Post on 07-Apr-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

1

ASP.NET - Karina Oliveira

Conteúdo

1 Introdução

2 Criando e Executando um Exemplo de Formulário Web Simples

3 Controles Web (Web Controls)

3.1 Trabalhando com Controles do Servidor

3.2 Persistindo Valores entre Web Forms

ASP.NET

Page 2: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

2

ASP.NET - Karina Oliveira

Conteúdo

4 Atividades Extras

4.1 Listando Arquivos de um Diretório

4.2 Controle AdRotator

4.3 Acompanhamento de Sessão

4.3.1 Cookies

4.3.2 HttpSessionState

ASP.NET

Page 3: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

3

ASP.NET - Karina Oliveira

Persistindo Valores entre WebForms

• Existem várias formas de passar valores de uma página para outra em ASP.NET:– Variáveis de sessão (Session)– Método Server.Transfer – Classe HttpContext– QueryString (este já foi explicado!)– ViewState (este também já foi explicado!)

Page 4: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

4

ASP.NET - Karina Oliveira

Usando Variáveis de Sessão

• A idéia aqui é armazenar valores para um web form (form1.aspx) em variáveis de sessão e acessá-las no outro web form (form2.aspx)

• Você só deve ter o cuidado de não sobrecarregar a sessão com muitas variáveis.

• Vejamos como se faz:– Você cria um web form com controles– Fornece algum botão ou link para submeter o seu

formulário– No evento Click do botão inclua uma variável de sessão

e defina cada uma com os valores dos controles que deseja passar

– Usando o método Response.Redirect envie os valores do formulário form1.aspx para o outro formulário form2.aspx

Page 5: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

5

ASP.NET - Karina Oliveira

Usando Variáveis de Sessão

• Usando o exemplo da Página de Login anterior, tem-se:

Page 6: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

6

ASP.NET - Karina Oliveira

Usando Variáveis de Sessão

No arquivo Login.aspx.cs:private void sendButton_Click(object sender, System.EventArgs e){

this.Session["user"] = userTextBox.Text;

this.Session["password"] = passwordTextBox.Text;

this.Response.Redirect("Resposta.aspx");}____________________________________________________________________

No arquivo Resposta.aspx.cs:private void Page_Load(object sender, System.EventArgs e){

respostaLabel.Text = "Usuário = " + Session["user"].ToString() +

" e Senha = " + Session["password"].ToString();

Session.Remove("user");

Session.Remove("password");

}

Page 7: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

7

ASP.NET - Karina Oliveira

Usando Server.Transfer

• O método Server.Transfer() transfere a execução de uma página ASPX para outra página ASPX. A página ASPX chamada deve ficar no mesmo servidor Web da página ASPX original e sua chamada não pode conter query string.

• Quando a transferência ocorre, a URL mostrada no browser não muda porque o redirecionamento ocorre no servidor, ao contrário do que ocorre quando se utilizada o método Response.Redirect(), provocando melhor performance.

• Por padrão, o método Server.Transfer() não repassa os dados do formulário e do query string do request da página original para a página que está sendo chamada. Entretanto, esses valores podem ser mantidos desde que seja informado o valor true como segundo argumento da chamada do método Server.Transfer().

• A utilização do método Server.Transfer é um pouco mais complexo. Nele você expõe os valores que deseja acessar em outra página como propriedade de uma classe. Por isto você terá que definir via código as propriedades na classe. É uma maneira mais elegante de passar valores.– Deve-se definir duas propriedades: Nome e Email. em form1.aspx

Page 8: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

8

ASP.NET - Karina Oliveira

Usando Server.Transfer()

No arquivo Login.aspx.cs:Definindo duas propriedades como públicas!public String Username {

get {

return userTextBox.Text;}

}public String Password {

get {

return passwordTextBox.Text;}

}

Page 9: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

9

ASP.NET - Karina Oliveira

Usando Server.Transfer()

No arquivo Login.aspx.cs:private void sendButton_Click(object sender,System.EventArgs e){

/* Método Server Transfer */Server.Transfer("Resposta.aspx");

}

No arquivo Resposta.aspx.cs:private void Page_Load(object sender, System.EventArgs e){

/* Usando Server.Transfer *///cria uma instãncia de formulárioWebForm1 login = (WebForm1)Context.Handler;respostaLabel.Text = "Usando Server.Tranfer: Usuário = "

+ login.Username + " e Senha = " + login.Password;}

Page 10: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

10

ASP.NET - Karina Oliveira

Usando a Classe HttpContext

• A classe encapsula todas as informações específicas sobre uma requisição HTTP. O objeto HttpContext da requisição HTTP atual fornece acesso aos objetos intrínsecos Request, Response e Server para a requisição.

• Os valores armazenados em HttpContext são validos somente durante a duração de uma requisição.

Page 11: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

11

ASP.NET - Karina Oliveira

Usando a Classe HttpContextNo arquivo Login.aspx.cs:private void sendButton_Click(object sender,System.EventArgs e){

HttpContext context = HttpContext.Current;

context.Items["user"] = userTextBox.Text;

context.Items["password"] = passwordTextBox.Text;

Server.Transfer("Resposta.aspx");}

No arquivo Resposta.aspx.cs:private void Page_Load(object sender, System.EventArgs e){

HttpContext context = HttpContext.Current;

respostaLabel.Text = "Usando HTTPContext: Usuário = "

+ context.Items["user"].ToString() +

" e Senha = " + context.Items["password"].ToString();

}

Page 12: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

12

ASP.NET - Karina Oliveira

Usando a Classe HttpContext

Page 13: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

13

ASP.NET - Karina Oliveira

Listando Arquivos de um Diretório

Page 14: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

14

ASP.NET - Karina Oliveira

Listando Arquivos de um Diretório

• Preencher uma controle ListBox com os nomes dos arquivos de um diretório é uma tarefa relativamente simples de ser feita mesmo em páginas ASP.NET.

ListBox

Page 15: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

15

ASP.NET - Karina Oliveira

Listando Arquivos de um DiretórioNo arquivo Arquivos.aspx.cs:private void Page_Load(object sender, System.EventArgs e){ if(!IsPostBack) { String nomeArquivo; ArrayList listaArquivos = new ArrayList(); String[] todosArquivos = Directory.GetFiles("C:\\temp\\images\\"); int i = 0; while (i < todosArquivos.Length) {

nomeArquivo = todosArquivos[i];nomeArquivo = nomeArquivo.Replace("C:\\temp\\images\\", "");listaArquivos.Add(nomeArquivo);i++;

} ListBox.DataSource = listaArquivos; ListBox.DataBind();}

Page 16: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

16

ASP.NET - Karina Oliveira

Listando Arquivos de um Diretório

Ainda ... No arquivo Arquivos.aspx.cs:

private void sendButton_Click(object sender,System.EventArgs e)

{

if(ListBox.SelectedIndex > -1)

{

fileLabel.Text = "Opção selecionada ->" +ListBox.SelectedItem.Text;

}

}

Page 17: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

17

ASP.NET - Karina Oliveira

Controle AdRotator

• O controle AdRotator é usado para exibir anúncios em sites Web.

• Usa dados de anúncios armazenados em arquivos XML e seleciona aleatoriamente uma imagem para exibir e gera um link para a página Web associada a imagem gerada.

Page 18: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

18

ASP.NET - Karina Oliveira

Um pouco sobre XML

Page 19: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

19

ASP.NET - Karina Oliveira

Um pouco sobre XML

Page 20: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

20

ASP.NET - Karina Oliveira

Controle AdRotator

Page 21: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

21

ASP.NET - Karina Oliveira

Cookies

Page 22: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

22

ASP.NET - Karina Oliveira

Cookies

Page 23: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

23

ASP.NET - Karina Oliveira

Cookies

Page 24: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

24

ASP.NET - Karina Oliveira

Cookies

Page 25: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

25

ASP.NET - Karina Oliveira

Cookies

No arquivo OptionsPage.aspx.cs:protected Hashtable books = new Hashtable();private void Page_Load(object sender, System.EventArgs e){ if ( IsPostBack ){

respostaLabel.Visible = true;escolhaHyperLink.Visible = true;enviarButton.Visible = false;selectLabel.Visible = false;selectRadioButtonList.Visible = false;// notify user of what they have chosenif ( selectRadioButtonList.SelectedItem != null ){

respostaLabel.Text += selectRadioButtonList.SelectedItem.ToString() + "."; bibliografiaHyperLink.Visible = true;}else{ respostaLabel.Text = "Você não selecionou nenhuma opção!";}

}}

Page 26: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

26

ASP.NET - Karina Oliveira

Cookies

Ainda ... No arquivo OptionsPage.aspx.cs:private void enviarButton_Click(object sender,System.EventArgs e){ // if choice was made by user if ( selectRadioButtonList.SelectedItem != null ) { string language = selectRadioButtonList.SelectedItem.ToString(); string ISBN = books[ language ].ToString(); //Cria cookie HttpCookie cookie = new HttpCookie( language, ISBN ); // adiciona o cookie a resposta response.Cookies.Add( cookie ); }}

Page 27: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

27

ASP.NET - Karina Oliveira

Cookies

Ainda ... No arquivo OptionsPage.aspx.cs:

override protected void OnInit( EventArgs e ){

// Adiciona valores para o Hashtablebooks.Add( "C#", "0-13-062221-4" );books.Add( "C++", "0-13-089571-7" );books.Add( "C", "0-13-089572-5" );books.Add( "Python", "0-13-092361-3" );books.Add( "Visual Basic .NET", "0-13-456955-5" );//// CODEGEN: This call is required by// the ASP.NET Web Form Designer.//InitializeComponent();base.OnInit( e );

}

Page 28: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

28

ASP.NET - Karina Oliveira

Cookies

Ainda ... No arquivo Bibliografia.aspx.cs:

override protected void OnInit(EventArgs e){ InitializeComponent(); base.OnInit(e); // recupera cookies do cliente HttpCookieCollection cookies = Request.Cookies; // se houver cookies além do ID Cookie, lista livros if ( cookies != null && cookies.Count != 1 ){

for ( int i = 1; i < cookies.Count; i++ ){ bibliografiaListBox.Items.Add(

cookies[ i ].Name + " How to Program. ISBN#: " + cookies[ i ].Value );

} }else{

bibliografiaLabel.Text = "Nenhuma Bibliografia!";bibliografiaListBox.Items.Clear();bibliografiaListBox.Visible = false;

}}

Page 29: ASP.NET - Karina Oliveira 1 Conteúdo 1Introdução 2Criando e Executando um Exemplo de Formulário Web Simples 3Controles Web (Web Controls) 3.1 Trabalhando

29

ASP.NET - Karina Oliveira

Referências

• DEITEL, Harvey M., DEITEL, Paul J. , Et Al. C# Como Programar. São Paulo: Pearson Education, 2003.

• Dotnetjunkies - http://www.asp.net/Tutorials/quickstart.aspx

• José Carlos Macoratti - http://www.macoratti.net/