3

我想知道是否可以调用只创建一次的对话框的多个实例。

前任:

我有这个创建对话框的代码:

<p:dialog id="dlgFormUsu" header="Dialog User" maximizable="true"
    minimizable="true" hideEffect="fade" widgetVar="dlgFormUsu"
    resizable="false" closable="true" draggable="true">

当我打电话dlgFormUsu.show()时它会正常打开,但是如果我再次尝试打开它,则没有任何显示。

无论如何打开同一个对话框两次?

4

1 回答 1

2

不,对话框只有一个实例,显示或隐藏。调用 show() 和 hide() 分别显示或隐藏对话框。

如果您需要多个对话框实例,请在其中声明对话框ui:composition并使用以下方法多次实例化它ui:include

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

   <ui:dialog id="myDialog#{id}" widgetVar="myDialog_widget#{id}" .... />

</ui:composition>

<ui:include src="mydialog.xhtml">
    <ui:param name="id" value="first" />
</ui:include>

<ui:include src="mydialog.xhtml">
    <ui:param name="id" value="second" />
</ui:include>
于 2013-09-24T14:49:39.480 回答