(_primefaces)dialog
ボックスに属性modal=true
を設定できません。 modal = falseでも正しく動作しますが、modal=true
を設定しようとすると、ダイアログボックスのオーバーレイも非アクティブになります。
正しく機能させるにはどうすればよいですか?
ダイアログセクションのPrimefacesガイド2.2に従って:
appendToBody FALSEブール値ダイアログをドキュメント本文の子として追加します。
Primefacesダイアログを使用する場合は、appendToBody属性を使用してダイアログオーバーレイを見つけられるようにします。 Primefacesダイアログは、モーダルダイアログオーバーレイについて同様の問題があるYUIダイアログコンポーネントに基づいています。
ダイアログオーバーレイの操作には、オーバーレイのCSSクラスのオーバーライドと独自の不透明度の指定が含まれます。
Primefaces 5では、appendTo="@(body)"
で問題が解決しました。
また、p:dialog
を別のh:form
に移動して、ダイアログのデータがdataTableの行と一致したが、オーバーレイが非表示にならないまで、奇妙な動作に苦労していました。
appendToBody=true
は、オーバーレイの問題を解決しました。入力とアクションを含むダイアログをテストする必要があります。
appendToBody = trueは、ネストされたフォームに関連する問題を引き起こします-ダイアログで入力された入力テキスト値は無視され、ダイアログが独自のネストされていないフォームを取得するまで、ajaxリクエストは通過しません。 modal = trueがなくても、appentToBody = trueがこの動作を引き起こします。