A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

ASP.NET Conteúdo Introdução

Apresentações semelhantes


Apresentação em tema: "ASP.NET Conteúdo Introdução"— Transcrição da apresentação:

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

2 ASP.NET 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

3 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 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 Usando Variáveis de Sessão
Usando o exemplo da Página de Login anterior, tem-se:

6 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 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 . em form1.aspx

8 Usando Server.Transfer()
No arquivo Login.aspx.cs: Definindo duas propriedades como públicas! public String Username { get return userTextBox.Text; } public String Password return passwordTextBox.Text;

9 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ário WebForm1 login = (WebForm1)Context.Handler; respostaLabel.Text = "Usando Server.Tranfer: Usuário = " + login.Username + " e Senha = " + login.Password;

10 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 Usando a Classe HttpContext
No 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) respostaLabel.Text = "Usando HTTPContext: Usuário = " + context.Items["user"].ToString() + " e Senha = " context.Items["password"].ToString();

12 Usando a Classe HttpContext

13 Listando Arquivos de um Diretório

14 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 Listando Arquivos de um Diretório
No 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 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 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 Um pouco sobre XML

19 Um pouco sobre XML

20 Controle AdRotator

21 Cookies

22 Cookies

23 Cookies

24 Cookies

25 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 chosen if ( selectRadioButtonList.SelectedItem != null ) respostaLabel.Text += selectRadioButtonList.SelectedItem.ToString() + "."; bibliografiaHyperLink.Visible = true; }else{ respostaLabel.Text = "Você não selecionou nenhuma opção!"; }

26 Ainda ... No arquivo OptionsPage.aspx.cs:
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 Ainda ... No arquivo OptionsPage.aspx.cs:
Cookies Ainda ... No arquivo OptionsPage.aspx.cs: override protected void OnInit( EventArgs e ) { // Adiciona valores para o Hashtable books.Add( "C#", " " ); books.Add( "C++", " " ); books.Add( "C", " " ); books.Add( "Python", " " ); books.Add( "Visual Basic .NET", " " ); // // CODEGEN: This call is required by // the ASP.NET Web Form Designer. InitializeComponent(); base.OnInit( e ); }

28 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 Dotnetjunkies - http://www.asp.net/Tutorials/quickstart.aspx
Referências DEITEL, Harvey M., DEITEL, Paul J. , Et Al. C# Como Programar. São Paulo: Pearson Education, 2003. Dotnetjunkies - José Carlos Macoratti -


Carregar ppt "ASP.NET Conteúdo Introdução"

Apresentações semelhantes


Anúncios Google