我有一個窗體,其中包含一個打開Primafaces overlayPanel
的按鈕。 在面板中還有另一個按鈕,用於執行Ajax操作,然後關閉疊加層。
這裏是一個簡化版本,沒有阿賈克斯行動都:Primefaces動態覆蓋面板只顯示一次
<h:form>
<p:commandButton id="button1" value="Open overlay" type="button"/>
<p:overlayPanel for="button1" widgetVar="ovl" dynamic="true">
<p:commandButton value="Close" oncomplete="ovl.hide();"
update="@form"/>
</p:overlayPanel>
</h:form>
請注意,面板必須有dynamic="true"
因爲動態內容必須在實際應用中獲取,並且需要以更新其他形式的update="@form"
組件。
問題是:如果我有attibutes,dynamic="true"
和update="@form"
覆蓋僅顯示第一次。點擊「關閉」按鈕後,如果我嘗試再次點擊「打開覆蓋」,面板將不會顯示。
我在做什麼錯?
(使用PrimeFaces 3.5和GlassFish 3.1.2.2)
謝謝阿克塞爾。不幸的是,疊加層是許多不同視圖中使用的複合組件的一部分,所以它必須由父窗體元素託管:它不能定義它自己的窗體,因爲我最終會嵌套窗體。 – yankee 2013-04-03 09:34:38