如何根据打开的属性更改<rich:simpletogglepanel>的样式?</rich:simpletogglepanel>

时间:2012-06-06 07:43:26

标签: css java-ee richfaces jsf-1.2

我想设置我依赖于“open”属性值的样式。 更具体一点:如果open == false的值我想在打印输出上隐藏simpleTogglePanel(即将样式设置为display:none)。

这样的事情(伪代码):

<rich:simpleTogglePanel opened="false" styleClass="#{ if opened then regular else hidePrint}" />

这可能吗?怎么样?我正在使用Richfaces 3.3.2。!

1 个答案:

答案 0 :(得分:1)

使用组件的渲染属性。

<rich:simpleTogglePanel rendered=#{bean.boolean} />

修改

您的托管bean中应该有一个布尔属性,因此您将知道它是否是您的togglePanel打开的。像

这样的东西
@ManagedBean
@RequestScoped
public class Bean {
    private boolean opened;
    //setters and getters
}

然后在您的页面上更改您的togglePanel,就像这样

<rich:simpleTogglePanel opened="#{bean.opened}" rendered="#{bean.opened}">

将bean中的属性设置为true或false,具体取决于您是否要默认隐藏togglePanel。或者你可以在每次使用Ajax切换时将其隐藏,将此行放在simpleTogglePanel标记内

 <p:ajax listener="#{bean.hidePanel}" update=":panel" />

将面板的id设置为面板,并将方法hidePanel添加到面板,该面板仅将boolean设置为false。编辑 - 它也应该在没有该监听器的情况下工作