jsf - tutorial - El diálogo no se actualiza después de completar el modelo en el método de acción
tipos de eventos ajax en primefaces (1)
Estoy usando un cuadro de diálogo de Primefaces. Tengo una lista de elementos, y cada vez que elijo un elemento, quiero que el cuadro de diálogo muestre el nombre de ese elemento. Sin embargo, esto no está sucediendo. En lugar de mostrar el nombre del elemento, el cuadro de diálogo no muestra ningún nombre. He publicado mi código a continuación.
<h:form>
<h:dataTable binding="#{table}" value="#{item.itemList}" >
<h:column>
<h:link value="#{item.itemList[table.rowIndex]}" outcome="item">
<f:param name="itemName" value="#{item.itemList[table.rowIndex]}" />
</h:link>
</h:column>
<h:column>
<p:commandButton action="#{item.setItem(item.itemList[table.rowIndex])}" id="showDialogButton"
type="link" value="Delete" onclick="dlg.show()" />
</h:column>
</h:dataTable>
<br />
<p:dialog header="Item" widgetVar="dlg" resizable="false">
<!-- I''ve also tried Item: #{item.item} -->
<p>Item: <f:attribute name="contentId" value="#{item.item}"/> </p>
<p:commandButton id="submitButton" value="Yes" action=
"#{item.deleteItem}" oncomplete="dlg.hide();">
</p:commandButton>
<p:commandButton id="cancelButton" value="Cancel" oncomplete="dlg.hide();" />
</p:dialog>
</h:form>
Mis getters y setters son solo getters y setters genéricos.
Olvidaste actualizar el diálogo antes de abrir.
<p:commandButton ... update="dialogId" />
También sugiero usar oncomplete
vez de onclick
para abrir el diálogo.