ASP .NET 2.0

Cross-Page Posting

 

Uma situação comum é criarmos um formulário e seguida precisarmos dos dados digitados em uma próxima página. Por exemplo, ao encerrar um cadastro desejamos exibir uma tela de confirmação para o usuário, e que esta exiba os dados digitados na página anterior. Para fazermos isso temos algumas alternativas, que são:

 

Session:

Session["Nome"] = this.txtNome.Text;

Session["Senha"] = this.txtSenha.Text;

Response.Redirect("Confirma.aspx");

 

HttpContext:

Context.Items.Add("Nome", usuario.Nome);

Context.Items.Add("Senha",this.txtSenha2.Text);

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

 

string nome = Context.Items["Nome"].ToString();

string senha = Context.Items["Senha"].ToString();

 

QueryString:

string url;

url="form2.aspx?Nome=" + txtNome.Text + "&Senha=" + txtSenha.Text;

Response.Redirect(url);

 

txtNome.Text= Request.QueryString["Nome"];

txtSenha.Text= Request.QueryString["Senha"];

 

Na versão ASP.NET 2.0 nós temos uma nova alternativa, e este é o objetivo deste artigo, explicar como trabalhar com este novo processo, Cross-Page Posting.

 

Requisitos: Visual Studio 2005 ou Visual Web Developer 2005 Express Edition - http://msdn.microsoft.com/vstudio/express/vwd/

 

 

 

 

 

 

 

Iniciando o projeto

1.      Crie um New Web Site chamado CrossPosting

1.1.   No arquivo Default.aspx digite o seguinte código

 

Repare na propriedade PostBackBackUrl  do botão btnCadastrar, isto redirecionará da página Default.aspx para a página Confirmacao.aspx.

 

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Untitled Page</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        Cadastro de usuário:<br />

        <br />

        Nome:<asp:TextBox ID="txtNome" runat="server"></asp:TextBox><br />

        <br />

        Senha:&nbsp;

        <asp:TextBox ID="txtSenha" runat="server" TextMode="Password"></asp:TextBox>

        <br />

        <br />

        <asp:Button ID="btnCadastrar" runat="server" PostBackUrl="~/Confirmacao.aspx" Text="Cadastrar" /></div>

    </form>

</body>

</html>

 

  

 

2.      No próximo passo crie um novo Web Form chamado Confirmação.aspx

2.1.   Digite a diretiva

<%@ PreviousPageType VirtualPath="~/Default.aspx" %>

 

Através desta diretiva teremos acesso às propriedades da página Default.aspx.

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Confirmacao.aspx.cs" Inherits="Confirmacao" %>

<%@ PreviousPageType VirtualPath="~/Default.aspx" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title>Confirmação</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:Label ID="lblMensagem" runat="server" Text="Label"></asp:Label>

    </div>

    </form>

</body>

</html>

 

3.      Prosseguindo com nosso projeto iremos digitar as propriedades Textbox na página Default.apx.

 

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

public partial class _Default : System.Web.UI.Page

{

    public TextBox _txtNome

    {

        get { return txtNome; }

 

    }

 

    public TextBox _txtSenha

    {

        get { return txtSenha; }

    }

}

 

 

 

4.      E por fim iremos codificar o arquivo Confirmacao.aspx.

4.1.   Na Figura 1 perceba que temos acesso às propriedades da página Default.aspx.cs.

4.2.  Um outro detalhe é que se o usuário tentar acessar a página Confirmacao.aspx diretamente  ele será redirecionado para o Default.aspx, através da propriedade PreviousPage.

 

Figura 1 – Acesso a propriedade _txtSenha 

 

 

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

public partial class Confirmacao : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (PreviousPage != null)

        {

            lblMensagem.Text = "Seu cadastro foi realizado com sucesso. <br> Anote seus dados <br>" +

            "Nome: " + PreviousPage._txtNome.Text  + "<br> Senha: " + PreviousPage._txtSenha.Text;

           

        }

        else

        {

            Response.Redirect("Default.aspx");

        }

 

    }

}

 

 

Figura 2 –  Página Default.apx

 

Figura 3 –  Página Confirmacao.aspx

Abraços e até o próximo.


.br
MSN – fgamans@hotmail.com

www.aspneti.com – community.net