我在我的项目中使用 PrimeFaces 3.2。我想知道设置 a 的渲染属性<p:dialog>与设置可见属性有什么区别。我什么时候应该使用这些属性中的任何一个?
28814 次
2 回答
32
rendered属性是服务器端,属性visible是客户端。该rendered属性告诉 JSF 是否应该生成对话框的 HTML 表示。该visible属性告诉 HTML/CSS/JS 是否应该在浏览器页面加载时立即显示对话框。
如果对话框未呈现,那么您将无法通过例如 JavaScript 显示它,dialogWidgetVar.show()而无需重新加载页面或 ajax 更新对话框的父组件之一,以便对话框的rendered条件评估为true. 此外,visible如果对话框没有被渲染,该属性也不会产生任何影响,因为没有任何内容被渲染到可以被 JavaScript 显示/隐藏的 HTML 输出。
如果对话框被渲染,那么它默认是隐藏的。您可以设置visible为true强制它在打开页面时立即显示对话框。dialogWidgetVar.show()或者您可以在某些onclick或oncomplete属性中调用 JavaScript来显示它。
如果您根本不想呈现对话框,请使用该rendered属性,例如因为在当前请求的页面组合中无论如何都不会使用它。
于 2012-04-07T01:21:11.910 回答
2
根据这些属性的文档,第 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]
于 2012-04-07T00:34:29.383 回答