我正在使用一个primefaces对话框。我有一个项目列表,每当我选择一个项目时,我希望对话框显示该项目名称。但是,这种情况并没有发生。该对话框根本不显示任何名称,而不是显示项目名称。我在下面发布了我的代码。
<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>
我的getter和setter只是通用的getter和setter。
答案 0 :(得分:3)
在打开之前忘了更新对话框。
<p:commandButton ... update="dialogId" />
我还建议使用oncomplete
代替onclick
来打开对话框。