SharePoint Latin Rotating Header Image

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.

3 Comments

  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=""> <strike> <strong>