web-dev-qa-db-ja.com

<p:dialog>のレンダリングされた属性と表示された属性の違い

プロジェクトでPrimeFaces3.2を使用しています。 <p:dialog>の-​​rendered属性を設定することと-を設定することの違いは何ですか? visible属性。これらの属性のいずれかをいつ使用する必要がありますか?

17
Nikhil

rendered属性はサーバー側であり、visible属性はクライアント側です。 rendered属性は、JSFがダイアログのHTML表現を生成する必要があるかどうかを示します。 visible属性は、HTML/CSS/JSがブラウザのページ読み込み時にダイアログをすぐに表示するかどうかを示します。

ダイアログがレンダリングされていない場合、ページをリロードするか、ダイアログの親コンポーネントの1つをそのようにajax更新して、ダイアログのrenderedを作成しない限り、JavaScript dialogWidgetVar.show()などでダイアログを表示することはできません。条件はtrueに評価されます。また、JavaScriptで表示/非表示にできる結果のHTML出力に何もレンダリングされないという理由だけでダイアログがレンダリングされない場合、visible属性は効果がありません。

ダイアログがレンダリングされる場合、デフォルトでは非表示になっています。 visibletrueに設定すると、ページを開いたときにすぐにダイアログを表示するように強制できます。または、JavaScript dialogWidgetVar.show()onclickまたはoncomplete属性で呼び出して表示することもできます。

ダイアログをまったくレンダリングしたくない場合、たとえば、現在要求されているページ構成では使用されないため、rendered属性を使用します。

31
BalusC

これらの属性の ドキュメント によると、セクション3.28:

rendered: Boolean value to specify the rendering of the component, when set to
          false component will not be rendered [default value: TRUE]
visible:  When enabled, dialog is visible by default [default value: FALSE]
2
Óscar López