2013-09-25 123 views
0

我有一个富有:手风琴,它有两个丰富的手风琴项目。 accordionItem 2中的某些操作使得accordionItem 1被禁用。因此,在该行动之后,我重新呈现整个手风琴,以便手风琴项目1被显示为禁用。但是在重新渲染时,虽然item1被禁用,但item2正在崩溃。我怎样才能避免这种情况?基本上,在回归时,手风琴总是将item1展现为扩展,并将所有其他的展现出来。在这里,当我禁用item1时,所有内容都已折叠。即使重新渲染或页面刷新后,如何恢复手风琴的状态?富有:手风琴折叠页面刷新的所有手风琴项目

回答

1

只需设置手风琴的activeItem属性即可。 (docs

<rich:accordion activeItem="#{bean.activeItem}"> 
    <rich:accordionItem name="first">…</rich:accordionItem> 
    <rich:accordionItem name="second">…</rich:accordionItem> 
</rich:accordion> 

它,当你切换标签指向<rich:accordionItem>和更新的名称。

+0

在bean中的方法,应该是setActiveItem?我在控制器中有一个setActiveItem(String activeItem)方法。但是我得到以下异常: @ 13,137 activeItem =“#{bean.activeItem}”:属性'activeItem'在java.lang.String类型中不可读。 –

+0

好吧..对不起,我没有添加一个getter到activeItem属性。但现在的问题是,第一次当页面尝试加载时,它访问bean上的getActiveItem(),它首次返回一个空字符串。这打破了网页,给人一种空指针异常 错误渲染查看[/myPage.xhtml] 显示java.lang.NullPointerException \t在org.richfaces.component.AbstractAccordion.getActiveItem(AbstractAccordion.java:57) \t在org.richfaces.component.AbstractTogglePanel.encodeBegin(AbstractTogglePanel.java:161) –

+0

你需要初始化String然后:)。 '私人字符串activeItem =“第一”' – Makhiel