PreviousPage en ASP.NET

Una de las actividades que recurrentemente realizamos cuando desarrollamos una aplicación Web utilizando ASP.NET es la de pasar datos entre formulario Web. Cuantas veces no te ha ocurrido que requieres acceder a controles de la forma anterior y en ocasiones utilizamos los objetos Session, Cache, Cookies o el QueryString para persistir los datos entre postbacks o entre múltiples paginas, es muy común este escenario y por esa razón desde la versión 1.1 del .NET Framework ya contabamos con un sencillo mecanismos adicional para referenciar los datos de un formulario anterior en otro actual, solo que no contaba con una implementacion bien definida, era algo asi como un truco con el VIEWSTATE y aspectos de la clase Page. 


 


Pero ahora en  ASP.NET 2.0 han mejorado este tipo de escenario haciendo más elegante su implementación. La clase PreviousPage nos permite acceder a miembros de la clase de la página anterior permitiéndonos entre otras cosas referenciar los valores  y propiedades de los controles. 


 


Aquí te dejo un sencillo ejemplo.


 


En la página inicial colocamos nuestros controles los exponemos como propiedades, ejemplo:


 


1: public partial class _Default : System.Web.UI.Page
2: {
3:
4:     public TextBox pp_Nombre
5:     {
6:         get { return TextBox1; }
7:     }
8:     public TextBox pp_Telefono
9:     {
10: get { return TextBox2; }
11:    
12:     }
13:     protected void Page_Load(object sender, EventArgs e)
14:     {
15:
16:     }
17: }


En la segunda página, justamente en la página donde queremos referenciar los datos de una pagina anterior, agregamos la siguiente directiva:


 


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


 


Esta directiva nos permite especificar que deseamos leer información de la página anterior y a través del atributo VirtualPath especificamos la página anterior, con esto,  ASP.NET se encarga de auto generar de manera tipada los controles de la página anterior en una clase llamada PreviousPage permitiéndonos tener acceso y referenciar los miembros de la clase de la página anterior.


 


En la segunda página solo escribimos el siguiente código para leer nuestros datos:


 

 1: public partial class Default2 : System.Web.UI.Page
2: {
3: protected void Page_Load(object sender, EventArgs e)
4: {
5: Label1.Text = PreviousPage.pp_Nombre.Text;
6:         Label2.Text = PreviousPage.pp_Telefono.Text;

7:
8: }
9: }

Este fue un pequeno tip para referenciar los datos de nuestra apgina anterior en un formulario actual.

About Haaron Gonzalez

SharePoint Technical Specialist and consultant devoted to design mission critical solutions for companies where collaboration and communication are their strategic investment. Since 1997 I have been evolving with Microsoft Platform and today I have the opportunity to deploy the business value of SharePoint for enterprise clients around the globe. I am a Microsoft Most Valuable Professional in ASP.NET since 2005 and SharePoint Server since 2009.
This entry was posted in 2435. Bookmark the permalink.

3 Responses to PreviousPage en ASP.NET

  1. xxx says:

    tambien existe el server.transfer en 1.1

    http://authors.aspalliance.com/kenc/passval.aspx

  2. Raul says:

    Amigo, buen post, pero me gustaría que aclararas algo, ésto no va a funcionar si yo utilizo Response.Redirect(“Pagina.aspx”);

    Solo funciona si Agregamos la propiedad PostBackUrl al control.

    O será que hay otra solución?

    Gracias por el post.

  3. Raul says:

    Amigo, buen post, pero me gustaría que aclararas algo, ésto no va a funcionar si yo utilizo Response.Redirect(“Pagina.aspx”);

    Solo funciona si Agregamos la propiedad PostBackUrl al control.

    O será que hay otra solución?

    Gracias por el post.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>