如何在单个页面上创建多个p:确认对话框

时间:2015-12-11 17:07:42

标签: jsf jsf-2 primefaces

我需要使用Primefaces在单个XHTML页面上询问两种不同类型的确认对话框。 Primefaces展示中的当前示例非常基本。以下是我的基本示例:

<h:form id="mydatatableform"> 
<p:dataTable ... />
    <p:column ... headerText="Column A Data">
        <h:outputText ... />
    </p:column>
    <p:column ... headerText="Acknowledge Docs">
        <p:commandButton value="Acknowledge" ...
            <p:confirm ajax="true" header="Confrimation" message="Do Acknowledge you have received the docs?"/>
        </p:commandButton>
    </p:column>
    <p:column ... headerText="Accept or Deny">
        <p:commandButton value="Accept or Deny" ...
            <p:confirm ajax="true" header="Confrimation" message="Do you Accept or Deny the proposal?"/>
        </p:commandButton>
    </p:column>
</p:dataTable>
</h:form>
<p:confirmDialog id="yesno" global="true">
    <h:form>
        <p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
        <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
    </h:form>
</p:confirmDialog>

好消息是这很好用。

不幸的是,对于Accept或Deny问题的对话框中的用户,不希望是否。他们希望在对话框中接受或拒绝。

我找不到任何关于如何使用两个不同的confirmDialog选项或从一个或另一个中选择的方法的好例子。

理想情况下,第二个confrimDialog看起来像这样:

<p:confirmDialog id="acceptdeny" global="true">
    <h:form>
        <p:commandButton value="Accept" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
        <p:commandButton value="Deny" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
    </h:form>
</p:confirmDialog>

我确信我需要删除global = true并以某种方式在每个p:confirm标签中引用每个confirmDialog分隔但是我找不到一个很好的例子来做这个并且我说Primefaces展示文档不是很详细这一点。

有什么建议吗?

1 个答案:

答案 0 :(得分:7)

请在此处查看PF文档的第120页:user guide 5.2

因此,您不会在示例的命令按钮中引用<p:confirm>,而是显示()相关的确认对话框。

以下是我所指的文档的摘录。

<h:form>
  <p:commandButton type="button" onclick="PF('cd').show()" />
  <p:confirmDialog message="Are you sure about destroying the world?"
     header="Initiating destroy process" severity="alert"
     widgetVar="cd">
     <p:commandButton value="Yes Sure" actionListener="#{buttonBean.destroyWorld}"
       update="messages" oncomplete="PF('cd').hide()"/>
     <p:commandButton value="Not Yet" onclick="PF('cd').hide();" type="button" />
  </p:confirmDialog>
</h:form>