web-dev-qa-db-ja.com

modal = trueのPrimefacesダイアログが正しく機能しない

(_primefaces)dialogボックスに属性modal=trueを設定できません。 modal = falseでも正しく動作しますが、modal=trueを設定しようとすると、ダイアログボックスのオーバーレイも非アクティブになります。

正しく機能させるにはどうすればよいですか?

19
Rajat Gupta

ダイアログセクションのPrimefacesガイド2.2に従って:

appendToBody FALSEブール値ダイアログをドキュメント本文の子として追加します。

Primefacesダイアログを使用する場合は、appendToBody属性を使用してダイアログオーバーレイを見つけられるようにします。 Primefacesダイアログは、モーダルダイアログオーバーレイについて同様の問題があるYUIダイアログコンポーネントに基づいています。

ダイアログオーバーレイの操作には、オーバーレイのCSSクラスのオーバーライドと独自の不透明度の指定が含まれます。

12
maple_shaft

Primefaces 5では、appendTo="@(body)"で問題が解決しました。

17
Abhishek Dhote

また、p:dialogを別のh:formに移動して、ダイアログのデータがdataTableの行と一致したが、オーバーレイが非表示にならないまで、奇妙な動作に苦労していました。

appendToBody=trueは、オーバーレイの問題を解決しました。入力とアクションを含むダイアログをテストする必要があります。

9

appendToBody = trueは、ネストされたフォームに関連する問題を引き起こします-ダイアログで入力された入力テキスト値は無視され、ダイアログが独自のネストされていないフォームを取得するまで、ajaxリクエストは通過しません。 modal = trueがなくても、appentToBody = trueがこの動作を引き起こします。

1
Gunjan Kalra