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