2011-06-20 40 views
17

No puedo obtener un cuadro (primogencias) dialog con el atributo modal=true. Funciona correctamente con modal = false, pero cuando intento establecer modal=true, incluso la superposición del cuadro de diálogo se vuelve inactiva.El diálogo Primefaces con modal = true no funciona correctamente

¿Cómo puedo hacer que funcione correctamente?

+5

Esto no es mucha información, ¿intentó configurar el atributo 'appendToBody = true'? Intenta publicar tu código. –

+0

¡Gracias esto funciona ahora, después de establecer 'appendToBody =" true "'! –

+0

¿Hay alguna manera más fácil de manipular la opacidad de la sección superpuesta? Puede considerar publicar esto como una respuesta para que yo pueda aceptarlo. –

Respuesta

12

por la Guía Primefaces 2.2 en la sección del diálogo:

appendToBody FALSE Anexa de diálogo como un hijo del cuerpo del documento.

Al utilizar el cuadro de diálogo Primefaces, utilice el atributo appendToBody para habilitar la superposición de diálogo. El cuadro de diálogo Primefaces se basa en el componente de diálogo YUI, que tiene un problema similar para las superposiciones de diálogo modal.

La manipulación de la superposición de diálogo implicará anular la clase CSS de la superposición y especificar su propia opacidad.

9

También he tenido problemas de comportamiento extraño hasta que moví el p:dialog a otro h:form en cuyo punto los datos del cuadro de diálogo coincidían con la fila de la tabla de datos pero no se ocultaba la superposición.

appendToBody=true resolvió el problema con la plantilla. Todavía necesito probar diálogos con entradas y acciones.

1

appendToBody = true causa los problemas asociados con formularios anidados: los valores de los textos de entrada ingresados ​​en el cuadro de diálogo son ignorados y las solicitudes ajax no se procesan hasta que el diálogo obtiene su propia forma no anidada. Incluso sin modal = true, appentToBody = true causa este comportamiento.

+0

Curiosamente, este es todavía el caso, 5 o 6 años después ... Creerían que se imaginaban una solución ahora. – Wep0n

13

Con Primefaces 5 appendTo="@(body)" resolvió el problema para mí.

+0

Estaba teniendo problemas al usar RequestContext # execute ("PF ('widgetvar'). Hide()"), mi diálogo estaba oculto como se esperaba pero la superposición translúcida no. El código funcionó bien con PF 5.1 pero rompió con 5.2/5.3. Esta solución hizo que las cosas funcionaran bien otra vez (se perdió algo en los documentos ...). – jpangamarca

+0

Estoy seguro de que esto funcionaría, sin embargo, en mi situación, mi diálogo está dentro de un formulario (y tengo campos de formulario dentro del diálogo), así que no puedo permitirme mover el diálogo al cuerpo, sin reorganizar mi totalidad xhml. continuará buscando una solución, habiendo actualizado de PF 4 a PF 5.3 – hendinas

Cuestiones relacionadas