プリムスペース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>
は動的なコンテンツは、実際のアプリケーションでフェッチしなければならない、とupdate="@form"
は、他のフォームを更新するために必要とされているため、パネルはdynamic="true"
を持たなければならないことに注意してくださいコンポーネント。
問題は次のとおりです。両方のアトリビュートがある場合は、dynamic="true"
とupdate="@form"
オーバーレイが最初に表示されます。 「閉じる」ボタンをクリックした後、もう一度「オーバーレイを開く」をクリックしようとすると、パネルは表示されません。
私は間違っていますか?私は以下のコードで気づいた何
(使用PrimeFaces 3.5とGlassFish 3.1.2.2)
ありがとうございますAksel。残念ながら、オーバーレイは多くの異なるビューで使用されるコンポジットコンポーネントの一部なので、親フォーム要素によってホストされなければなりません。ネストされたフォームで終わるので、独自のフォームを定義することはできません。 – yankee