Estoy abriendo una página normal como un diálogo usando javascript:apex.navigation.dialog('f?p=&APP_ID. (...) ,{title:'Page',height:'900',width:'1800',maxWidth:'1600',modal:true,dialog:null},'t-Dialog--standard'); a través de la acción "Redireccionar a URL" de un botón. Además, tengo una acción dinámica (Diálogo cerrado) asociada a ese botón.
En la página que se abre, tengo un botón con un DA que tiene una acción javascript con apex.navigation.dialog.close(true); .
Esperaba que el cuadro de diálogo cerrado DA se disparara cuando cerré la página de 'diálogo', cuando hice clic en el botón al que se hace referencia anteriormente. ¿Qué me estoy perdiendo?
No hay ningún evento de cierre registrado si abre el cuadro de diálogo de esta manera. Puede lograr esto activando un evento personalizado al cerrar el cuadro de diálogo. Esto se explica claramente en el blog de Max aquí . Sin embargo, dice "Estoy abriendo una página normal", lo que significa que no puede configurar esa solución como se describe.
Está tratando de mezclar 2 cosas: alguna funcionalidad de diálogo (una acción dinámica al cerrar) y redirección (que es completamente diferente a un diálogo y no tiene las propiedades que tiene un diálogo). En una redirección, ya no hay relación entre la página que llama y la página abierta, por lo que tendrá que encontrar su propia solución personalizada.
Pude encontrar una solución para este problema al crear una página modal con una región de "Contenido dinámico". En él codifiqué un iFrame: htp.p('<iframe id ="test" scrolling="no" src=" #URL_OF_THE_NORMAL_PAGE " style="padding-top:5px;border:0px;width:1900px;height:1100px;"></iframe>');
En la página modal, creé un botón con la acción "Cerrar diálogo" al hacer clic. De esta manera, la página normal se presentaría en un aspecto de página modal y el "Diálogo cerrado" de DA en la página principal se activaría cuando hiciera clic en el botón.
Para hacer que la página normal se parezca más a un cuadro de diálogo, he usado algo de CSS para ocultar los menús bajo ciertas condiciones (si la página se abría a través del iframe).