Problemas con la sesión con Postback en window.ShowModaldialog

Hoy un compañero me ha comentado que estaban teniendo problemas con una aplicación que están manteniendo en un cliente y en concreto en una ventana que abrían con la función window.ShowModaldialog() y en la que al cargarse se mostraban los valores de unas variables de sesión, pero que al hacer click sobre un botón que causaba postback esos valores los estaban perdiendo.

El problema radica en las ventanas que se abren con window.ShowModalDialog y es que el postback causa una nueva petición al servidor que hace que se dispare el evento Session_Start, con lo cual todas las varibles de sesión se pierden.

En estos casos podemos hacer 2 cosas:

  1. Usar este tipo de ventanas sólo para interactuar mediante JavaScript y devolver los datos a la página padre y si necesitamos hacer postback para ejecutar código de servidor, utilizar window.open
  2. Usar ModalPopup de AJAX Control ToolKit, yo lo utilizo en controles de usuario y disparo eventos personalizados para comunicarme con las páginas.

Salu2 y espero que os sea útil ;)

Published 17/7/2007 13:44 por Luis Ruiz Pavón
Archivado en: ,,
Comparte este post:
http://geeks.ms/blogs/lruiz/archive/2007/07/17/problemas-con-la-sesi-243-n-con-postback-en-window-showmodaldialog.aspx

Comentarios

# re: Problemas con la sesión con Postback en window.ShowModaldialog

buenas...

Hay una tercera (y a mi gusto mejor) opción:

3. Agregar en el head de la ventana hija (child, o sea la q está en popup) este tag: <base target="_self" />

De esta forma el postback funciona.

Tuesday, July 17, 2007 2:49 PM por patanpatan

# re: Problemas con la sesión con Postback en window.ShowModaldialog

hola, yo de nuevo...

un update: Me pasó q intentando llamar a otra ventana desde la modal q tenía el targer=_self se creaba una sesión nueva del browser, por lo q no tenía más las variables de sesión. Lo solucioné pasandole como argumento del showModalDialog la ventana padre, y al necesitar abrir una ventana nueva hacer window.dialogArguments.open()

Tuesday, July 17, 2007 3:00 PM por patanpatan

# re: Problemas con la sesión con Postback en window.ShowModaldialog

Gracias por los apuntes compañero ;)

Salu2

Tuesday, July 17, 2007 4:01 PM por Luis Ruiz Pavón

# re: Problemas con la sesión con Postback en window.ShowModaldialog

puedes probar tambien con esta sentencia window.ShowModlessDialog

Friday, September 14, 2007 3:08 PM por xjaguar

# re: Problemas con la sesión con Postback en window.ShowModaldialog

yo interactuo  con pa ventana hija y carga los datos en el padre todo bien hasta alli  el problema inicia cuando inteto abrir  otra ventana  o hacer click en un combo  se pierden todos los datos q carge de las ventanas hijas

Monday, September 24, 2007 4:32 PM por John

# re: Problemas con la sesión con Postback en window.ShowModaldialog

la sentencia window.dialogArguments.open(), se pondria en la ventana hija en el codigo javscript

Wednesday, September 26, 2007 3:52 PM por Jose

# re: Problemas con la sesión con Postback en window.ShowModaldialog

Le agradeseria me pasen el codigo que ya les funciono tengo el mismo problema, se trata de una pagina em la q tengo un link q abre una ventana de busqueda de productos, al cerrar esta deseo que el dato que ingrese en el form hijo se cargue al padre y que q este envie estos datos al servidor, gracias de antemano jcarlos777@gmail.com o arpanetmsn@hotmail.com

Friday, October 26, 2007 6:10 PM por carlos torrez

# re: Problemas con la sesión con Postback en window.ShowModaldialog

podrian de favor pasarme el codigo de la solucion tengo exactamente el mismo problema

muchas gracias por su colaboracion

saludos

Thursday, February 21, 2008 2:45 AM por humbert5

# re: Problemas con la sesión con Postback en window.ShowModaldialog

podrian de favor pasarme el codigo de la solucion tengo exactamente el mismo problema

muchas gracias por su colaboracion

carvajalfh@yahoo.com.mx

carvajalfh@hotmail.com

saludos

Thursday, February 21, 2008 2:45 AM por humbert5

# re: Problemas con la sesión con Postback en window.ShowModaldialog

podrian de favor pasarme el codigo de la solucion tengo exactamente el mismo problema

jorgeluislopezromo30@hotmail.com

muchas gracias por su colaboracion

Wednesday, October 15, 2008 9:20 PM por Jorge

# re: Problemas con la sesión con Postback en window.ShowModaldialog

Para obligar a mantener las variables de sesion, ante cualquier evento, y obligar a refrescar la pagina la 2ª vez que se abre, yo he puesto los siguientes tags

<base target="_self">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">

Tuesday, March 31, 2009 6:33 PM por JuanLuis

# re: Problemas con la sesión con Postback en window.ShowModaldialog

Me pasa lo mismo me pueden mandar por mail la solución valericienta@gmail.com.

Muchas Gracias !!!!

Tuesday, April 07, 2009 3:12 PM por Valeria

# re: Problemas con la sesión con Postback en window.ShowModaldialog

"Me pasa lo mismo me pueden mandar por mail la solución valericienta@gmail.com.

Muchas Gracias !!!!"

Digo yo, porque no postean la solucion asi la vemos todo?

Thursday, May 21, 2009 8:22 PM por El pibe

# re: Problemas con la sesión con Postback en window.ShowModaldialog

hola compañeros me sirvio mucho tu ultimo aporte. Gracias un saludos desde lima-peru el pais de la cumbia.

Sunday, July 19, 2009 11:59 PM por aspnito

# re: Problemas con la sesión con Postback en window.ShowModaldialog

Les comento que hace dos semanas que ya no me funciona estos comandos, me parece que una de las actualizaciones de windows bloqueo esta opcion, no puedo actualizar mi showmodaldialog.

Thursday, September 24, 2009 9:47 PM por Usbmarco

# re: Problemas con la sesión con Postback en window.ShowModaldialog

Yo el problema que tenía es que cuando abro la ventana, leo datos y los muestro.

En la ventana esos datos modifican, se graban y se cierra.

Al volver a abrir la ventana no hacía el Page_Load y la abría tal y como la abrió la primera vez.

En la url, le he añadido un parámetro que siempre lleva un valor distinto y entonces si hace el Page_Load.

var hora = new Date().getTime();

window.showModalDialog("MiPagina.aspx?x=" + hora.toString().........

Ahora cada vez que abro la página hace el Page_Load.

Funciona en IE7, IE8 y Firefox, en IE6 no he probado.

Friday, October 02, 2009 11:17 AM por Yuyu

# re: Problemas con la sesión con Postback en window.ShowModaldialog

Gracias JuanLuis!! Tu opción fue la que me funciono de 10!!

Friday, March 16, 2012 2:35 PM por Ernest25