我有一个对话框,我可以从中创建一个人员实体,可以从各种按钮调用,根据当前视图,可能需要更新不同的字段。
人物对话如下:
<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>
答案 0 :(得分:0)
dialogReturn
您可以通过javascript与dlgCreatePersons.hide()
关闭对话框。虽然文档没有说明与javascript API相关的此事件
从4.0开始,还可以从辅助bean关闭对话框:
public void selectCarFromDialog(Car car) {
RequestContext.getCurrentInstance().closeDialog(car);
}
请参阅PrimeFaces User Guide,对话框架。