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

Post on 07-Apr-2016

214 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

5

ASP.NET - Karina Oliveira

Usando Variáveis de Sessão

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

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

}

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

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

}

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

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.

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

}

12

ASP.NET - Karina Oliveira

Usando a Classe HttpContext

13

ASP.NET - Karina Oliveira

Listando Arquivos de um Diretório

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

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

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;

}

}

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.

18

ASP.NET - Karina Oliveira

Um pouco sobre XML

19

ASP.NET - Karina Oliveira

Um pouco sobre XML

20

ASP.NET - Karina Oliveira

Controle AdRotator

21

ASP.NET - Karina Oliveira

Cookies

22

ASP.NET - Karina Oliveira

Cookies

23

ASP.NET - Karina Oliveira

Cookies

24

ASP.NET - Karina Oliveira

Cookies

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

}}

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

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

}

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;

}}

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/

top related