【问题标题】:How to create multiple p:confirm dialogs on a single page如何在单个页面上创建多个 p:confirm 对话框
【发布时间】:2015-12-11 17:07:42
【问题描述】:

我需要使用 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>

好消息是这很好用。

不幸的是,用户不希望接受或拒绝问题对话框中的选项是“否”。他们希望在对话框中接受或拒绝。

我找不到任何很好的例子来说明如何使用两个不同的确认对话框选项或从中进行选择。

理想情况下,第二个 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 展示文档不是很详细这一点。

有什么建议吗?

【问题讨论】:

  • 检查 PrimeFaces 文档……它在里面……

标签: jsf jsf-2 primefaces


【解决方案1】:

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

因此,您无需在示例的命令按钮中引用&lt;p:confirm&gt;,而是将显示()相关的确认对话框。

这是我所指的文档的摘录。

<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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2021-09-04
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多