Pasar variables en asp

Solo disponible en BuenasTareas
  • Páginas : 17 (4105 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de enero de 2010
Leer documento completo
Vista previa del texto
Pasando variables entre paginas web ASP.NET usando Cross Page Postback
Existen varias formas de pasar variables entre formularios web, como por ejemplo haciendo uso de la URL, o usando sesiones. Cada una de estas caracteristicas tiene sus ventajaa y desventajas.
Ahora que nueva característica trajo ASP.NET 2.0?, Cross Page Postback. Pero que hace esta característica, veamos el siguientegráfico y después damos una breve explicación [URL01]:
{draw:frame}
Antes con ASP.NET 1.X, solo se podía hacer PostBack a la misma página, es decir cuando pulsaba cualquier botón esta se dirigía hacia si misma, ahora en ASP.NET 2.0, se puede hacer Cross Page Postback, es decir ya no limitar que mi página solo pueda ser enviada a si misma, sino que puedo enviar el contenido a cualquier otrapágina. Las aplicaciones que se le puede dar a esta característica son varias, veamos algunas de sus ventajas:
Todo la información de la página actual estará disponible en la página destino.
Debido a las ventajas anteriores, permite el paso de variables entre páginas.
Pero manos a la obra, como hacemos esto?, pues aquí uno de los escenarios en los cuáles se podría aplicar. Setrata de un formulario de confirmación de registro, para esto necesitamos el nombre, y los datos ingresados en la página origen, para asi mostrarla en la página destino:
Página Origen (wf_registro.aspx):
{draw:frame}
Página Destino (wf_confirmacion.aspx):
{draw:frame}
Ahora cuáles son los pasos para lograr esto?:
En la página wf_registro.aspx y en el botón de enviobtnEnviar, modificamos la siguiente propiedad PostBackUrl (en la ventana de propiedades o desde la vista source de la página): PostBackUrl="~/wf_confirmacion.aspx"
="~/wf_confirmacion.aspx"
Ahora en el evento Load de la página wf_confirmacion.aspx, agregamos el siguiente código [Cod01]:
Qué pasaría si accedemos directamente a wf_confirmacion.aspx, pues que daría un error, paraevitar esto agregamos nuestro [Cod01], el que esta dentro del load, y lo ponemos dentro de este if:
`if(Page.PreviousPage !=null)
{ ... }`
`if(Page.PreviousPage !=null)
{ ... }`
Ahora como podemos mejorar el acceso a la página origen?, si bien el método FindControl es útil, puede no darte precisión al colocar mal el nombre. Para evitar estos incovenientes podemos hacer uso dePropiedades Públicas. Nota: Tratar de colocar solo la información necesaria en variables públicas, para reducir la cantidad de información disponible para usuarios potencialmente malintencionados {draw:frame} .
Para poder acceder a las propiedades de la página origen se debe establecer una referencia "strongly type" a ella. Hay dos formas de hacerlo [URL04], pero nosotros vamos a haceruso de la directiva @PreviousPageType, para nuestro cometido, y agregamos el siguiente código a nuestra página wf_confirmacion.aspx:
Agregamos la siguiente propiedad a nuestra clase wf_registro.aspx.cs:
Ahora el nuevo Load de la página wf_confirmacion.aspx, quedaría así:
Se nota la diferencia {draw:frame} .
Ahora qué sucede si es que yo voy a llamar al páginade confirmación de diversas páginas?, es decir no quiero atar la propiedad pública a una página. Pues para eso haremos uso del patrón adapter [URL03]:
Agregaremos esta interface a la carpeta App_Code: `using System;

public interface IRegistroForm
{
string NombreRegistro
{ get; }
}`
Ahora hacemos que nuestra clase wf_Registro implemente a IRegistreForm, además deheredar de System.Web.UI.Page: wf_registro : System.Web.UI.Page, IRegistroForm
`: System.Web.UI.Page,IRegistroForm`
Ahora podemos remover la directiva @PreviousPageType, de la página wf_confirmacion.aspx, y actualizamos el código dentro de nuestro Load: Espero que haya quedado claro el post/artículo, si tienen alguna pregunta, o algo que agregar, me dejan un comentario. En...
tracking img