Anteriormente publique un articulo llamado Abrir popup con JavaScript donde se abre el popup
utilizando javascript, con la función ya incrustada desde el lado del cliente.
Existen otras formas de poder realizar esto, una es escribir el código directo
en una variable y ejecutarlo con un response.write desde nuestra pagina aspx.cs
o aspx.vb, dependiendo del lenguaje.
Pues bien
ahora les traigo otra forma de lograrlo, dentro de una pagina que tiene
controles Ajax, si han utilizado Ajax en sus paginas web, habrán notado que no
se lleva muy bien con los scripts de javascript. Para ello existe una solución
de realizar el cometido.
Una pagina
que utiliza Ajax, necesita de un ScriptManager, esto nos impide ejecutar los códigos
de Ajax, y si lo hacemos desde un response.write, se ejecuta la acción pero la
pagina se desconfigura. Para ello existe la siguiente solución.
Dentro de la
clase ScriptManager, viene un método llamado
RegisterClientScriptBlock, con el cual podemos ejecutar nuestro window.open.
String
Clientscript = "window.open(‘pagina.aspx')";
ScriptManager.RegisterClientScriptBlock(this, this.GetType(),"newWindow", Clientscript, true);
Como podrán
darse cuenta si han ejecutado un response.write con la función de abrir una
ventana lleva antes del window.open la instrucción de que es script
<script type="text/javascript"><script>, en este
caso ya no lo lleva, ya que se especifica en el RegisterClientScriptBlock que
es una nueva ventana con el texto "newWindow".
Con este sencillo comando se ejecuta nuestro script y
no habrá problema con la pagina de que se llegue a cuatrapear.
Otra forma
de abrir una nueva ventana, sin necesidad de utilizar el response.write y la
página no tiene Ajax es con el ClientScript
String Clientscript = "<script>window.open('pagina.aspx"')</script>";
Me.ClientScript.RegisterStartupScript(this.GetType(),
"WOpen",
Clientscript,
true);
Se podrán dar cuenta que es similar pero aquí se
ejecuta dentro del cliente, y es el mismo efecto, no afecta para nada la
pagina, como lo aria un response.write y la instrucción es diferente al abrir
la ventana en vez de "newWindow"
ahora es "WOpen"
Sin mas por el momento espero les halla sigo util, ya saben si tienen dudas o comentarios no duden en publicarlo.
Saludos cordiales!
No hay comentarios:
Publicar un comentario