Primefaces对话返回

时间:2014-03-13 11:49:16

标签: jsf primefaces

我有一个对话框,我可以从中创建一个人员实体,可以从各种按钮调用,根据当前视图,可能需要更新不同的字段。

人物对话如下:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui">

    <!--CREATE DIALOG-->
    <p:dialog header="Create Person" widgetVar="dlgCreatePersons">
        <h:form id="createPersonsForm">

            <h:panelGrid columns="1" styleClass="dlg-full-width">
                ....various fields
            </h:panelGrid>


            <h:panelGroup style="display:block; text-align:center">

                <p:commandButton value="Submit" update="@form :messages"
                                 process="@this @form" actionListener="#{person.create}"/>                                                          
            </h:panelGroup>
        </h:form>

        <p:ajax event="close" update="createPersonsForm" global="false"
                listener="#{person.reset('createPersonsForm')}"/>
    </p:dialog>

</ui:composition>

在其他形式上,我可能有一个命令按钮,打开此对话框,根据当前视图更新页面的某些部分,也可能触发不同的监听器。

  <p:commandButton value="+" type="button" onclick="PF('dlgCreatePersons').show()">                      
        <p:ajax event="dialogReturn" update="@form" listener="#{bean.doStuff}/>             
   </p:commandButton>

如您所见,我尝试在此处应用示例:http://www.primefaces.org/showcase/ui/dialogFrameworkData.jsf

我知道这与从支持bean中调用的对话框有关,而不是客户端,但是我想知道在这种特定情况下是否有办法触发 dialogReturn 事件。 / p>

1 个答案:

答案 0 :(得分:0)

关闭对话框时会触发

dialogReturn 您可以通过javascript与dlgCreatePersons.hide()关闭对话框。虽然文档没有说明与javascript API相关的此事件 从4.0开始,还可以从辅助bean关闭对话框:

public void selectCarFromDialog(Car car) {
        RequestContext.getCurrentInstance().closeDialog(car);
}

请参阅PrimeFaces User Guide,对话框架。