【问题标题】:PrimeFaces dialog refer to parentPrimeFaces 对话框引用父级
【发布时间】:2013-08-04 20:37:10
【问题描述】:

我有一个显示带有条目的数据表的 xhtml 页面。我还有一个按钮来插入一个新条目,它显示一个包含表单的对话框。插入表单在父.xhtml中作为<ui:include>使用,如下:

父文件

    <h:form id="mainForm">
        <p:commandButton process="@form" update=":dlgGrp" oncomplete="dlg.show()"/>

        <p:datatable id = "datatable"> 

            various columns
            .....
            .....
        </p:datatable>

    </h:form>

    <p:dialog widgetVar="dlg" >

        <h:panelGroup id="dlgGrp">
            <ui:include src="include.xhtml" />
        </h:panelGroup>
    </p:dialog>

</ui:composition>

对话文件

<ui:composition xmlns . . .>

    <h:form id="subForm">

        various input fields
        ......  
        ......
        <p:commandButton process="@form" update=":mainForm" oncomplete="dlg.hide()"/>

    </h:form>

</ui:composition>

我如何一般地引用文件中显示的父组件。简而言之,当我点击对话框中的提交按钮时,我想更新主表单并隐藏对话框。然而,这些组件位于“父字段”中。

这可能应该通过支持 bean 以编程方式完成,因为我不想在子 .xhtml 中包含特定于父级的操作,因为我可能还想将它用作独立的 .xhtml。

【问题讨论】:

  • 你可以考虑用你包含的 xhtml 做一个复合组件。但几乎没有关于功能的信息可以为您提供任何进一步的建议。
  • 这个问题完全把我弄糊涂了。答案似乎与所要求的不匹配(参数化 &lt;ui:include&gt; 以便它可以在不修改包含文件的情况下重复用于多种表单),但答案已被接受!我现在不知道你具体要问什么了。

标签: jsf primefaces facelets


【解决方案1】:

如果您想通过backingBean 中的方法更新mainForm。只需修改

<p:commandButton process="@form" action="#{backingBean.method}" oncomplete="dlg.hide()"/>

并在您的 backingBean 中执行以下操作 (see Primefaces Showcase):

public void method() {
  // do something
  RequestContext context = RequestContext.getCurrentInstance();
  context.update(":mainForm");
}

您只需检查您的mainForm 是否已经在另一个NamingContainer 中。 如果是这样,您需要相应地更改context.update(...)

此外,如果您想从支持 bean 更新 mainForm,我还建议您将对话框隐藏在 backingBean 中,具体取决于处理的输入。如果例如某些数据无效,您不想隐藏对话框。这目前无法通过您的 oncomplete 操作完成,该操作在收到服务器响应后自动执行。无论输入是否正确,对话框都会关闭。

所以添加到method():

if (everythingWentFine) {
  context.execute("dlg.hide();");
}

并从您的p:commandButton 中删除oncomplete

【讨论】:

    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 2013-05-22
    • 2018-02-22
    • 2017-06-04
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多