我在我的项目中使用PrimeFaces 3.2。我想知道将<p:dialog>
的rendered属性设置与将visible属性设置有何区别。 我应该何时使用这些属性?
我在我的项目中使用PrimeFaces 3.2。我想知道将<p:dialog>
的rendered属性设置与将visible属性设置有何区别。 我应该何时使用这些属性?
rendered
属性是服务器端属性,而 visible
属性是客户端属性。 rendered
属性告诉JSF是否应该生成对话框的HTML表示形式。 visible
属性则告诉HTML / CSS / JS是否应该立即在浏览器页面加载时显示对话框。
如果未呈现对话框,则您将无法通过例如JavaScript dialogWidgetVar.show()
显示它,除非重新加载页面或ajax更新其中一个对话框的父组件,以使对话框的 rendered
条件评估为true
。同样,如果对话框未呈现,则 visible
属性将不起作用,因为没有任何正在呈现到结果HTML输出的内容可以被JavaScript显示/隐藏。
如果已呈现对话框,则默认情况下会隐藏。您可以将 visible
设置为 true
,以强制在打开页面时立即显示对话框。或者,您可以在某个 onclick
或 oncomplete
属性中调用 JavaScript dialogWidgetVar.show()
来显示它。
如果您不想完全呈现对话框,则使用 rendered
属性,例如,因为在当前请求的页面构成中根本不会使用它。
根据那些属性的文档,第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]
visible
属性在RF modalPanel中相当于showWhenRendered
。显然,您也将其设置为true
。 - BalusC<p:dialog>
,我们能让它响应式吗?请参考这个问题。 - Jad Chahine