<p:dialog> </p:dialog>的渲染属性和可见属性之间的差异

时间:2012-04-07 00:26:00

标签: jsf primefaces

我在我的项目中使用PrimeFaces 3.2。我想知道设置<p:dialog> 呈现 属性与设置 可见 <之间的区别/ strong>属性。我什么时候应该使用这些属性中的任何一个?

2 个答案:

答案 0 :(得分:29)

rendered属性是服务器端,visible属性是客户端。 rendered属性告诉JSF是否应该生成对话框的HTML表示。 visible属性告诉HTML / CSS / JS是否应该立即显示浏览器页面加载的对话框。

如果没有呈现对话框,那么你将无法通过例如JavaScript dialogWidgetVar.show()显示它而无需重新加载页面或ajax更新对话框的父组件之一,以便对话框的rendered条件评估为true。如果没有简单地渲染对话框,visible属性也不会有任何影响,因为没有任何东西被渲染到生成的HTML输出中,可以通过JavaScript显示/隐藏。

如果渲染对话框,则默认隐藏它。您可以将visible设置为true以强制它在打开页面时立即显示对话框。或者,您可以在某些dialogWidgetVar.show()onclick属性中调用JavaScript oncomplete来显示它。

如果您根本不想渲染对话框,请使用rendered属性,例如因为它无论如何都不会在当前请求的页面组合中使用。

答案 1 :(得分:2)

根据这些属性的documentation,第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]