Tengo un problema con el uso de closeDialog(), que siempre me ha funcionado y en otros proyectos no hay problemas haciendolo de la misma manera.
A ver si me podéis orientar.
Desde una vista tabular, tengo un botón para abrir un dialogo. Lo hago de la siguiente manera:
En el diálogo que abre, tengo un botón para confirmar fechas y hacer la operativa. Cuando acaba debe cerrar el dialogo que se ha mostrado.
Pues no funciona.
Controlador del dialogo con el boton para descargar que se debería cerrar al acabar
<controladornombre="DialegDatesExportar"><!-- Si fem click al boto descarregar --><accionnombre="descarregar"clase="com.button.gc.actions.OKDialegDatesExportarExcel"/></controlador>
Pues en la accion anterior, he puesto el closeDialog() al principio, y no cierra el dialogo. Incluso he comentado todo el código de la operativa.
Si busco el title de la view, compruebo que es el dialogo que se ha abierto es correcto.
Si pongo el closeDialog() al final de la accion (primera) que abre el dialogo, lo cierra...
Si le doy a la x del dialogo arriba a la derecha, funciona y se cierra.
Algo se me escapa...
Es una version algo antigua, pero debería funcioar. XavaPro 6.4.1
Last edit: Xavier Gonzalez 2023-05-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Como explica la IForwarAction, al llamar javascript no recarga la pagina.
Es por eso, que si hago F5 al final, se cierra el dialógo y entonces se muestran los addInfo() que tenía pendientes.
He intentado hacer un refresco de la pantalla con el metodo getPostJavaScript() pero no funciona. No se me llama el método en ningún momento.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Como explica la IForwarAction, al llamar javascript no recarga la pagina.
Claro, piensa que te vas a otro página diferente, no que vas a ejecutar JavaScript. Justo por eso creamos la IJavaScriptPostAction. He visto que la tienes puesta pero comentada. ¿No te ha funcionado?
Ayuda a otros en este foro como yo te ayudo a ti.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Claro, piensa que te vas a otro página diferente, no que vas a ejecutar JavaScript.
Tengo inNewWindow() en false, para que no se abra ninguna pestaña en el navegador. Se queda en la misma misma página.
Justo por eso creamos la IJavaScriptPostAction. He visto que la tienes puesta pero comentada. ¿No te ha funcionado?
El getPostJavaScript() no me ha funcionado si esta el getForwardURI(). Si comento IForwardAction y sus métodos, entonces sí que funciona. No sé si es un bug o realmente es el comportamiento correcto.
Al final, lo que me gustaría es que se cerrase el dialogo abierto despues de descargar el fichero. O no sería problema, primero cerrar el diálogo y después bajar el fichero (lo he probado, y tampoco va...)
Last edit: Xavier Gonzalez 2023-05-24
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Al final he encontrado una forma de que funcione.
He descartado usar el método getForwardURI(), ya que necesitaba refrescar página y no lo hacía. Y como bloqueaba al getPostJavaScript, he probado de solo usar el getPostJavaScript() y llamar al servlet en el return:
Hola,
Tengo un problema con el uso de closeDialog(), que siempre me ha funcionado y en otros proyectos no hay problemas haciendolo de la misma manera.
A ver si me podéis orientar.
Desde una vista tabular, tengo un botón para abrir un dialogo. Lo hago de la siguiente manera:
En el diálogo que abre, tengo un botón para confirmar fechas y hacer la operativa. Cuando acaba debe cerrar el dialogo que se ha mostrado.
Pues no funciona.
La action:
Controlador del dialogo con el boton para descargar que se debería cerrar al acabar
Pues en la accion anterior, he puesto el closeDialog() al principio, y no cierra el dialogo. Incluso he comentado todo el código de la operativa.
Si busco el title de la view, compruebo que es el dialogo que se ha abierto es correcto.
Si pongo el closeDialog() al final de la accion (primera) que abre el dialogo, lo cierra...
Si le doy a la x del dialogo arriba a la derecha, funciona y se cierra.
Algo se me escapa...
Es una version algo antigua, pero debería funcioar. XavaPro 6.4.1
Last edit: Xavier Gonzalez 2023-05-22
No sé el motivo, pero si quito IChainAction entonces si que me funciona el closeDialog().
Alguna idea?
Bueno, ya sé el motivo de por qué no funciona el closeDialog() pero no acabo de poderlo solucionar.
Mi accion, luego llama otra accion que descargar un fichero con un servlet. Para hacerlo uso la siguiente accion:
Como explica la IForwarAction, al llamar javascript no recarga la pagina.
Es por eso, que si hago F5 al final, se cierra el dialógo y entonces se muestran los addInfo() que tenía pendientes.
He intentado hacer un refresco de la pantalla con el metodo getPostJavaScript() pero no funciona. No se me llama el método en ningún momento.
Hola Xavier:
Claro, piensa que te vas a otro página diferente, no que vas a ejecutar JavaScript. Justo por eso creamos la IJavaScriptPostAction. He visto que la tienes puesta pero comentada. ¿No te ha funcionado?
Ayuda a otros en este foro como yo te ayudo a ti.
Hola JP,
Claro, piensa que te vas a otro página diferente, no que vas a ejecutar JavaScript.
Justo por eso creamos la IJavaScriptPostAction. He visto que la tienes puesta pero comentada. ¿No te ha funcionado?
Last edit: Xavier Gonzalez 2023-05-24
Bueno,
Al final he encontrado una forma de que funcione.
He descartado usar el método getForwardURI(), ya que necesitaba refrescar página y no lo hacía. Y como bloqueaba al getPostJavaScript, he probado de solo usar el getPostJavaScript() y llamar al servlet en el return:
De esta forma, descarga el fichero y cierra el dialogo, además de mostrar los addInfo o addError si es necesario.