0

我正在使用 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。

4

1 回答 1

3

您忘记在打开之前更新对话框。

<p:commandButton ... update="dialogId" />

我还建议使用oncomplete而不是onclick打开对话框。

也可以看看:

于 2013-07-08T16:05:54.357 回答