viernes, 7 de marzo de 2008

ASP.NET - Pasar valores entre paginas II

Si bien el método descrito en el anterior post funciona, no es la mejor manera para pasar valores entre páginas ASP.NET.
Y por qué no es la mejor?
Por los sgtes motivos:
1.- Me obliga a declarar una variable por cada control.valor que deseo recuperar de la página default.aspx
2.- Hace una conversión de tipos ( recuerden el CType(PreviousPage.FindControl("txtName"), TextBox) ) ... lo cual también es costoso.

Pero, hay una mejor manera?
Claro, fíjense:
Voy a crear en la página default.aspx, una propiedad por cada dato que deseo que se recupere desde la página destino.aspx,
ejemplo:
Public ReadOnly Property Name() As String
Get
Return txtName.Text
End Get
End Property

luego, en la página destino.aspx, en la cabecera agregamos la directiva



Con esto le decimos a la página destino.aspx que tendremos acceso a las propiedades y métodos públicos de la página default.aspx...

Luego, para recuperar los valores de la página default.aspx... en la página destino.aspx escribimos:
Label1.Text = PreviousPage.Name

Inclusive habrán notado que se activa el Intellisense.
Mucho más simple, cierto?

1 comentario:

Unknown dijo...

Hola! He estado viendo tu BLOG y de verdad que me ha impactado. Gracias por tus entradas, la verdad las encuentro fantasticas!. He visto esta entrada y quisiera aportar con algo que encontre muy bueno navegando por alli con respecto a este tema. Te dejo el link, echale un ojo.

http://www.codedigest.com/Articles/ASPNET/76_HttpContext_Object_for_Developers.aspx