我在项目中使用PrimeFaces 3.2。我想知道设置<p:dialog>
的呈现属性与设置visible属性之间有什么区别。什么时候应该使用这些属性之一?
最佳答案
rendered
属性是服务器端,而visible
属性是客户端。 rendered
属性告诉JSF是否应生成对话框的HTML表示形式。 visible
属性告诉HTML / CSS / JS是否应在浏览器页面加载时立即显示对话框。
如果未呈现对话框,那么您将无法通过例如JavaScript dialogWidgetVar.show()
来显示它,而无需重新加载页面或以这种方式ajax更新对话框的父组件之一,以便评估对话框的rendered
条件到true
。同样,如果对话框的呈现方式不仅仅因为没有呈现到最终的HTML输出(可以被JavaScript显示/隐藏),则visible
属性也不会起作用。
如果呈现对话框,则默认情况下它是隐藏的。您可以将visible
设置为true
以强制其在打开页面时立即显示对话框。或者,您可以在某些dialogWidgetVar.show()
或onclick
属性中调用JavaScript oncomplete
进行显示。
如果您根本不想渲染对话框,请使用rendered
属性,例如,因为在当前请求的页面组合中无论如何都不会使用它。
关于jsf - <p:dialog>的呈现属性和可见属性之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10050669/