Você está na página 1de 29

1

ASP.NET
Contedo
1 Introduo
2 Criando e Executando um Exemplo de Formulrio
Web Simples
3 Controles Web (Web Controls)
3.1 Trabalhando com Controles do Servidor
3.2 Persistindo Valores entre Web Forms

ASP.NET - Karina Oliveira


2

ASP.NET
Contedo
4 Atividades Extras
4.1 Listando Arquivos de um Diretrio
4.2 Controle AdRotator
4.3 Acompanhamento de Sesso
4.3.1 Cookies
4.3.2 HttpSessionState

ASP.NET - Karina Oliveira


3

Persistindo Valores entre WebForms

Existem vrias formas de passar valores de


uma pgina para outra em ASP.NET:
Variveis de sesso (Session)
Mtodo Server.Transfer
Classe HttpContext
QueryString (este j foi explicado!)
ViewState (este tambm j foi explicado!)

ASP.NET - Karina Oliveira


4

Usando Variveis de Sesso

A idia aqui armazenar valores para um web


form (form1.aspx) em variveis de sesso e
acess-las no outro web form (form2.aspx)
Voc s deve ter o cuidado de no sobrecarregar a
sesso com muitas variveis.
Vejamos como se faz:
Voc cria um web form com controles
Fornece algum boto ou link para submeter o seu
formulrio
No evento Click do boto inclua uma varivel de sesso
e defina cada uma com os valores dos controles que
deseja passar
Usando o mtodo Response.Redirect envie os valores
do formulrio form1.aspx para o outro formulrio
form2.aspx
ASP.NET - Karina Oliveira
5

Usando Variveis de Sesso

Usando o exemplo da Pgina de Login


anterior, tem-se:

ASP.NET - Karina Oliveira


6

Usando Variveis de Sesso


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 = "Usurio = " + Session["user"].ToString() +
" e Senha = " + Session["password"].ToString();
Session.Remove("user");
Session.Remove("password");
}
ASP.NET - Karina Oliveira
7

Usando Server.Transfer
O mtodo Server.Transfer() transfere a execuo de uma pgina
ASPX para outra pgina ASPX. A pgina ASPX chamada deve ficar
no mesmo servidor Web da pgina ASPX original e sua chamada no
pode conter query string.
Quando a transferncia ocorre, a URL mostrada no browser no muda
porque o redirecionamento ocorre no servidor, ao contrrio do que
ocorre quando se utilizada o mtodo Response.Redirect(), provocando
melhor performance.
Por padro, o mtodo Server.Transfer() no repassa os dados do
formulrio e do query string do request da pgina original para a
pgina que est sendo chamada. Entretanto, esses valores podem ser
mantidos desde que seja informado o valor true como segundo
argumento da chamada do mtodo Server.Transfer().
A utilizao do mtodo Server.Transfer um pouco mais
complexo. Nele voc expe os valores que deseja acessar em outra
pgina como propriedade de uma classe. Por isto voc ter que definir
via cdigo as propriedades na classe. uma maneira mais elegante de
passar valores.
Deve-se definir duas propriedades: Nome e Email. em form1.aspx

ASP.NET - Karina Oliveira


8

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

}
ASP.NET - Karina Oliveira
9

Usando Server.Transfer()
No arquivo Login.aspx.cs:
private void sendButton_Click(object sender,System.EventArgs e)
{
/* Mtodo 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 instncia de formulrio
WebForm1 login = (WebForm1)Context.Handler;
respostaLabel.Text = "Usando Server.Tranfer: Usurio = "
+ login.Username + " e Senha = " + login.Password;
}
ASP.NET - Karina Oliveira
10

Usando a Classe HttpContext

A classe encapsula todas as informaes


especficas sobre uma requisio HTTP. O
objeto HttpContext da requisio HTTP
atual fornece acesso aos objetos intrnsecos
Request, Response e Server para a
requisio.
Os valores armazenados em HttpContext
so validos somente durante a durao de
uma requisio.

ASP.NET - Karina Oliveira


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)
{
HttpContext context = HttpContext.Current;

respostaLabel.Text = "Usando HTTPContext: Usurio = "


+ context.Items["user"].ToString() +
" e Senha = " +
context.Items["password"].ToString();
}
ASP.NET - Karina Oliveira
12

Usando a Classe HttpContext

ASP.NET - Karina Oliveira


13

Listando Arquivos de um Diretrio

ASP.NET - Karina Oliveira


14

Listando Arquivos de um Diretrio

Preencher uma controle ListBox com os nomes


dos arquivos de um diretrio uma tarefa
relativamente simples de ser feita mesmo em
pginas ASP.NET.

ListBox

ASP.NET - Karina Oliveira


15
Listando Arquivos de um Diretrio
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();
}

ASP.NET - Karina Oliveira


16
Listando Arquivos de um Diretrio

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

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


{
if(ListBox.SelectedIndex > -1)
{
fileLabel.Text = "Opo selecionada ->" +
ListBox.SelectedItem.Text;
}
}

ASP.NET - Karina Oliveira


17

Controle AdRotator

O controle AdRotator usado para exibir anncios em


sites Web.
Usa dados de anncios armazenados em arquivos XML e
seleciona aleatoriamente uma imagem para exibir e gera
um link para a pgina Web associada a imagem gerada.

ASP.NET - Karina Oliveira


18

Um pouco sobre XML

ASP.NET - Karina Oliveira


19

Um pouco sobre XML

ASP.NET - Karina Oliveira


20

Controle AdRotator

ASP.NET - Karina Oliveira


21

Cookies

ASP.NET - Karina Oliveira


22

Cookies

ASP.NET - Karina Oliveira


23

Cookies

ASP.NET - Karina Oliveira


24

Cookies

ASP.NET - Karina Oliveira


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 no selecionou nenhuma opo!";
}
}
}

ASP.NET - Karina Oliveira


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

ASP.NET - Karina Oliveira


27
Cookies

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

override protected void OnInit( EventArgs e )


{
// Adiciona valores para o Hashtable
books.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 );
}

ASP.NET - Karina Oliveira


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 alm 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;
}
}
ASP.NET - Karina Oliveira
29

Referncias

DEITEL, Harvey M., DEITEL, Paul J. , Et


Al. C# Como Programar. So Paulo:
Pearson Education, 2003.
Dotnetjunkies -
http://www.asp.net/Tutorials/quickstart.aspx
Jos Carlos Macoratti -
http://www.macoratti.net/

ASP.NET - Karina Oliveira

Você também pode gostar