Jsf 如何打开PrimeFaces手风琴面板中所有动态加载的选项卡

Jsf 如何打开PrimeFaces手风琴面板中所有动态加载的选项卡,jsf,primefaces,Jsf,Primefaces,我正在将表的内容加载到PrimeFaces 4.0手风琴面板中,每一行对应一个动态加载的选项卡。我可以这样做,但默认情况下只打开第一个选项卡 通常,要在默认情况下打开多个手风琴面板,请使用activeIndex=“tabIndexList”,其中tabIndexList是要打开的选项卡列表 例如: <p:accordionPanel multiple ="true" activeIndex="0,1,2"> 在最新版本的PrimeFaces(4.0)发布之前,还没有打开所有选项卡的

我正在将表的内容加载到PrimeFaces 4.0手风琴面板中,每一行对应一个动态加载的选项卡。我可以这样做,但默认情况下只打开第一个选项卡

通常,要在默认情况下打开多个手风琴面板,请使用
activeIndex=“tabIndexList”
,其中
tabIndexList
是要打开的选项卡列表

例如:

<p:accordionPanel multiple ="true" activeIndex="0,1,2">

在最新版本的PrimeFaces(4.0)发布之前,还没有打开所有选项卡的功能。但是,如果支持bean返回一个包含集合所有索引的字符串,那么您的方法就会起作用

比如:

public String returnActiveIndexString(){
totalNumberOfTabs=getTotalNumberOfTabs();
StringBuilder out=新的StringBuilder();
字符串前缀=”;
对于(int i=0;i
对我来说,触发点击事件很重要,因为我必须在点击时初始化一些数据,所以我用以下方式解决了它:1。通过将activeTabindex设置为“-1”,2关闭所有选项卡。单击每个选项卡。p:accordionPanel需要具有属性multiple=“true”


对于我来说,我只想显示所有用于打印的选项卡

动态更新CSS类是最好的方法

以下是如何使用JQuery执行此操作:

<span onclick="$('.ui-accordion-content.ui-helper-hidden').css('display','block')" >
  Printable version
</span>

可打印版本

当需要字符串时,在此处返回StringBuilder。此外,我得到了异常
类'BackingBean$Proxy$\u$$\ uWeldClientProxy'没有'returnActiveIndexString'属性。
@dasLort我没有所有的back bean代码,所以我给出了一种解决方法。这可能是因为您不必根据自己的bean调整代码。您可能会遇到此错误,因为方法调用中缺少参数。为什么不将其添加到带有媒体类型打印的CSS中?是的,我可能也会这样做,但实际上我还需要一个展开/折叠链接,允许用户一次切换所有内容,而不必触碰java bean。
public String returnActiveIndexString(){
    totalNumberOfTabs = getTotalNumberOfTabs();
    StringBuilder out = new StringBuilder();
    String prefix = "";
    for(int i = 0; i < totalNumberOfTabs; i++){
        out.append(prefix);
        prefix = ",";
        out.append(i);
    }
    return out.toString();
}
<p:commandButton value="open"
        actionListener="#{beanController.setActiveTabIndex('-1')}"
        update="accordionPanel"
        oncomplete="$('.ui-accordion-header').click();" />
<span onclick="$('.ui-accordion-content.ui-helper-hidden').css('display','block')" >
  Printable version
</span>