Estoy tratando de mover un p:dialog
cabo de un h:form
, porque he leído que esta es la manera preferida (sin embargo me gustaría entender la razón, porque mi p:dialog
dentro de un form
funciona bien en mi aplicación).f: setPropertyActionListener no invoca
La única dificultad es que el título del cuadro de diálogo debe actualizarse dinámicamente. El cuadro de diálogo se muestra cuando se hace clic en un botón en p:dataTable
.
Aquí está mi viejo XHTML (antes de los cambios), que está funcionando muy bien:
<p:dataTable var="event" value="#{eventBean.lazyModel}" selection="#{eventBean.selectedEvent}" />
...
<p:column headerText="#{msgs.Persons}">
<p:commandButton value="#{msgs.ViewPersons}" update=":viewPersonsForm" oncomplete="viewPersonsDlg.show()">
<f:setPropertyActionListener value="#{event}" target="#{eventBean.selectedEvent}" />
</p:commandButton>
</p:column>
</p:dataTable>
<h:form id="viewPersonsForm">
<p:dialog modal="true" widgetVar="viewPersonsDlg" dynamic="true" header="#{eventBean.selectedEvent.name}" >
...
</p:dialog>
</h:form>
Y aquí está el nuevo XHTML, con eventBean # setSelectedEvent() que no se invoca.
<p:dataTable var="event" value="#{eventBean.lazyModel}" selection="#{eventBean.selectedEvent}" />
...
<p:column headerText="#{msgs.Persons}">
<p:commandButton value="#{msgs.ViewPersons}" update=":viewPersonsDlgId" oncomplete="jQuery('#viewPersonsDlgId .ui-dialog-title').text('#{eventBean.selectedEvent.name}');viewPersonsDlg.show()">
<f:setPropertyActionListener value="#{event}" target="#{eventBean.selectedEvent}" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:dialog modal="true" id="viewPersonsDlgId" widgetVar="viewPersonsDlg" dynamic="true" >
...
</p:dialog>
Así, de nuevo, por lo que en el segundo escenario eventBean # setSelectedEvent() no es invocado? Y, si es posible, ¿por qué el primer escenario no es óptimo?
Gracias por los enlaces. Lamentablemente, el colocador no se dispara, incluso con su configuración. – perissf
Lo he probado y funciona bien. Si el colocador no se dispara por usted, entonces una de las fases del ciclo JSF falló. Agregue '' a su página y verifique si hay errores. –
Fallup
Tienes razón, el problema está en otro lado. Déjame investigar más ... – perissf