PopUp ASP.NET
Has querido usar un InputBox en ASP.NET, o simplemente quieres abrir una ventana extra del navegador y quieres que te regrese un resultado? esta es la solución
Primero que nada necesitas tener dos paginas una principal y la quieres que se abra
En la primera necesitas tener una funcion que abra la segunda la cual puede ser algo asi:
window.open("../../Pagina.aspx","MiPagina","width=370,height=450")
Para poder insertar en tu pagina esta funcion javascript se introduce dentro de una etiqueta
recuerda que el lenguaje es javascript y el tipo: texto/javascript
Donde los parametos son 3: la direccion de la pagina, el nombre y las caracteristicas que quieras darle a
la venta, separados por comas
La sintaxis de esto hasta ahora quedaria asi:
function Abrir(){
window.open("../../Pagina.aspx","MiPagina","width=370,height=450")
}
Hasta este punto tu pagina principal ya puede abrir la otra solo necesitas asociarla con algun control: esto se hace del lado del server con la Propiedad Attributes, la sintaxis quedaria algo asi
Ahora ya tenemos un boton en nuestra pagina principal que puede abrir la segunda, solo falta que la segunda nos arroje un resultado, hay varias maneras de hacer esto pero por lo pronto les mencionare algunas opciones
El usuario puede interarctuar con la segunda pagina y darle valor a variables accesibles a la primera pagina como pueden ser variables de sesion
Se tiene que realizar un proceso como el anterior para la segunda ventana pero copn unas diferencias, tambien hay que crear una funcion
function Cerrar(){
window.opener.Resultado();
window.close();
}
Esta funcion ejecuta el metodo resultado de la pagina principal desde la segunda, ya que el objeto "opener" es la ventana que abrio la pagina actual.Ademas esta funcion cierra la ventana actual con el metodo Close()
Otra cosa que puede hacer es hacer lo que el metodo Resultado() haria en la pagina principal directamente desde la segunda utilizando el objeto "opener".Hay que recordar que se debe asignar esta funcion con algun evento del lado del cliente como seria el click de un boton, agregando desde el lado del server con sus respectivos atributos
'Tambien se pueden controlar otros eventos para ejecutar la funcion solo hay que comprobar que sean javascript
Una ves hecho esto ya tenemos una pagina principal que abre una segunda pagina estilo PopUp
Otra cosa que se puede hacer es el uso de funciones javascript con parametros, esto podria servir para por ejemplo que la segunda pagina varie segun la principal, digamos que escribe algo en la pagina principal y desea que esto aparesca en la segunda pagina, entonces los parametros pueden ser bastante utiles, la sintaxis es la misma que si fuera codigo del lado del server, solo recuerda que lso valores string van entre comillas simples. En este caso nos convendria agregar el atributo al control en algun otro momento como por ejemplo cuando ya tengamos el texto en la pagina principal que queremos mostrar en la segunda
Podria ocuparse asi:
function Abrir(Texto){
window.open("../../Pagina.aspx?Nombre='" + Texto + "'","MiPagina","width=370,height=450")
}
Para poder insertar en tu pagina esta funcion javascript se introduce dentro de una etiqueta
recuerda que el lenguaje es javascript y el tipo: texto/javascript
Donde los parametos son 3: la direccion de la pagina, el nombre y las caracteristicas que quieras darle a
la venta, separados por comas
La sintaxis de esto hasta ahora quedaria asi:
function Abrir(){
window.open("../../Pagina.aspx","MiPagina","width=370,height=450")
}
Hasta este punto tu pagina principal ya puede abrir la otra solo necesitas asociarla con algun control: esto se hace del lado del server con la Propiedad Attributes, la sintaxis quedaria algo asi
Boton.Attributes.Add("onClick","javascript:Abrir()")
Esto puedo hacerlo en cualquier momento, pero en este caso convendria hacerlo en el evento Load de la pagina (mas adelante se vera porque se podria realizar en algun otro momento)
Ahora ya tenemos un boton en nuestra pagina principal que puede abrir la segunda, solo falta que la segunda nos arroje un resultado, hay varias maneras de hacer esto pero por lo pronto les mencionare algunas opciones
El usuario puede interarctuar con la segunda pagina y darle valor a variables accesibles a la primera pagina como pueden ser variables de sesion
Se tiene que realizar un proceso como el anterior para la segunda ventana pero copn unas diferencias, tambien hay que crear una funcion
function Cerrar(){
window.opener.Resultado();
window.close();
}
Esta funcion ejecuta el metodo resultado de la pagina principal desde la segunda, ya que el objeto "opener" es la ventana que abrio la pagina actual.Ademas esta funcion cierra la ventana actual con el metodo Close()
Otra cosa que puede hacer es hacer lo que el metodo Resultado() haria en la pagina principal directamente desde la segunda utilizando el objeto "opener".Hay que recordar que se debe asignar esta funcion con algun evento del lado del cliente como seria el click de un boton, agregando desde el lado del server con sus respectivos atributos
'Tambien se pueden controlar otros eventos para ejecutar la funcion solo hay que comprobar que sean javascript
Una ves hecho esto ya tenemos una pagina principal que abre una segunda pagina estilo PopUp
Otra cosa que se puede hacer es el uso de funciones javascript con parametros, esto podria servir para por ejemplo que la segunda pagina varie segun la principal, digamos que escribe algo en la pagina principal y desea que esto aparesca en la segunda pagina, entonces los parametros pueden ser bastante utiles, la sintaxis es la misma que si fuera codigo del lado del server, solo recuerda que lso valores string van entre comillas simples. En este caso nos convendria agregar el atributo al control en algun otro momento como por ejemplo cuando ya tengamos el texto en la pagina principal que queremos mostrar en la segunda
Podria ocuparse asi:
function Abrir(Texto){
window.open("../../Pagina.aspx?Nombre='" + Texto + "'","MiPagina","width=370,height=450")
}
Asi agregamos un parametro al abrir la segunda pagina el cual puede recuperarse de la siguiente forma:
variable = Request.QueryStrings("Nombre")
Y con esto podriamos tomar las acciones necesarias para usar ese texto