我正在开发使用Primefaces 3.5的项目(是的,它是一个非常古老的版本)。我想要实现的是Javascript中的一个函数,它将改变Primefaces元素的属性。有可能吗?
我所拥有的是一个定义为:
的小组collapsed="true"
我的想法是使用Javascript将collapsed="false"
更改为mypanelWidget.expand()
。
这种必要性因为更新面板的ajax调用而激增,当它更新时,它显示为折叠状态。在回调时执行routes.rb
并不是一个好主意,因为我的页面变得非常活跃。
答案 0 :(得分:2)
两个选项:
只需在collapsed
属性中使用EL来检查某些模型状态,而不是指定硬编码的true
。
<p:panel ... collapsed="#{not bean.ajaxMethodCalled}">
如果调用了感兴趣的ajax方法,请确保isAjaxMethodCalled()
返回true
。它不一定需要是布尔属性,它可以是任何东西,包括检查HTTP请求参数映射,只要它求值为所需的布尔结果。
在ajax调用期间不要更新面板本身。而是更新其内容。
<p:panel ...>
<h:panelGroup layout="block" id="panelContents">
...
<p:ajax update="panelContents" />
...
</h:panelGroup>
</p:panel>
这样,HTML DOM树中面板的HTML表示状态保持不变。