Primefaces通过Javascript更改元素属性

时间:2015-09-22 07:47:02

标签: javascript jsf primefaces

我正在开发使用Primefaces 3.5的项目(是的,它是一个非常古老的版本)。我想要实现的是Javascript中的一个函数,它将改变Primefaces元素的属性。有可能吗?

我所拥有的是一个定义为:

的小组
collapsed="true"

我的想法是使用Javascript将collapsed="false"更改为mypanelWidget.expand()

这种必要性因为更新面板的ajax调用而激增,当它更新时,它显示为折叠状态。在回调时执行routes.rb并不是一个好主意,因为我的页面变得非常活跃。

1 个答案:

答案 0 :(得分:2)

两个选项:

  1. 只需在collapsed属性中使用EL来检查某些模型状态,而不是指定硬编码的true

    <p:panel ... collapsed="#{not bean.ajaxMethodCalled}">
    

    如果调用了感兴趣的ajax方法,请确保isAjaxMethodCalled()返回true。它不一定需要是布尔属性,它可以是任何东西,包括检查HTTP请求参数映射,只要它求值为所需的布尔结果。

  2. 在ajax调用期间不要更新面板本身。而是更新其内容。

    <p:panel ...>
        <h:panelGroup layout="block" id="panelContents">
            ...
            <p:ajax update="panelContents" />
            ...
        </h:panelGroup>
    </p:panel>
    

    这样,HTML DOM树中面板的HTML表示状态保持不变。