3

一度だけ作成されたダイアログの複数のインスタンスを呼び出すことができるかどうか知りたいです。

元:

ダイアログを作成する次のコードがあります。

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

呼び出すdlgFormUsu.show()と正常に開きますが、もう一度開こうとすると何も表示されません。

とにかく、この同じダイアログを 2 回開くには?

4

1 に答える 1

2

いいえ、ダイアログには表示または非表示のインスタンスが 1 つしかありません。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 に答える