2013-09-24 446 views
3

我想知道是否可以調用一次只創建一個對話框的多個實例。打開多個對話框

例:

我有這樣的代碼,創建對話框:

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

當我打電話dlgFormUsu.show()它正常打開,但如果我嘗試打開它再沒有任何顯示。

無論如何打開同一個對話框兩次?

回答

1

不,對話框只有一個顯示或隱藏的實例。調用show()和hide()你分別顯示或隱藏對話框。

如果你需要對話的多個實例,使用ui:includeui:composition聲明對話框並創建實例很多次:

<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>