Primafaces を開くボタンのあるフォームがありますoverlayPanel
。パネルには、Ajax アクションを実行してからオーバーレイを閉じる別のボタンがあります。
以下は、Ajax アクションがまったくない単純化されたバージョンです。
<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"
他のフォーム コンポーネントを更新するために必要であるため、パネルには必須であることに注意してください。
問題は、両方の属性がdynamic="true"
ありupdate="@form"
、オーバーレイが最初にしか表示されない場合です。「閉じる」ボタンをクリックした後、もう一度「オーバーレイを開く」をクリックしようとすると、パネルが表示されません。
私は何を間違っていますか?
(PrimeFaces 3.5 および GlassFish 3.1.2.2 を使用)