无法默认关闭所有p:accordionPanel选项卡

16

我无法将所有的p:accordionPanel标签关闭。

我尝试了在问题Hiding the first tab of accordion panel in JSF Primefaces中推荐的两种解决方案,但是如果accordionPanel的value属性是EL表达式,则对我无效。第一个标签始终是打开的。

我尝试了

<p:accordionPanel widgetVar="accordion" 
multiple="true" 
value="#{cc.attrs.managedBean.getTabs()}" var="r">

未成功

<p:accordionPanel activeIndex="-1" 
multiple="true" value="#{cc.attrs.managedBean.getTabs()}" var="r">

仅在accordionPanel没有value属性的情况下起作用

感谢任何帮助。

我使用的是primesfaces 3.3.1


值被设置为什么了?请发布您如何创建该值的代码(Java代码)。 - siebz0r
@ siebz0r:getTabs只是视图范围托管Bean中的一个函数,返回具有代码和标签属性的Tab列表。然后我在选项卡标题中使用标签,如此<p:tab title="#{r.libelle}">。 - Aziz Mehdaoui
它与p:accordionPanel activeIndex="x"一起正常工作。 - Aziz Mehdaoui
关于PrimeFaces 6.0,请参见我的答案:https://dev59.com/6Wkw5IYBdhLWcg3wBl-A#41960522 - Andrew
5个回答

39

我使用“null”可行: <p:accordionPanel activeIndex="null">

我正在使用PF 3.5版本,将activeIndex设置为null可以默认关闭选项卡。


9

我正在使用PF 3.5版本,发现如果我为activeIndex指定一个大于p:accordianPanel标签下选项卡数的负数,所有选项卡都会被折叠。例如:

<p:accordionPanel activeIndex="-2">
   <p:tab title="Hello">
   </p:tab>
   <p:tab title="World">
   </p>
 </p:accordionPanel>

显示所有选项卡均折叠的手风琴效果。如果这种方法对您有效,或者您已经找到了其他解决方案,请告诉我。谢谢。


4
我通过将其保持为空来解决了这个问题。 就像这样:activeIndex=""

这样做会破坏js,至少在3.5版本中是如此。无法打开它。@John Brown的答案更好。 - Aritz

2
在我的情况中,设置activeIndex为“-1”或“null”或“-”或“”都没有起作用。
我从管理器bean中返回了“-1”,它起作用了。getter总是返回“-1”,setter不执行任何操作。
activeIndex="#{managerBean.activeTabIndices}"

p.s. 我需要所有选项卡最初都保持关闭状态。 - user3126748
嘿!看起来你没有仔细阅读我的帖子。这不是评论或问题。我已经给出了另一个可能的解决方案,这个问题已经在讨论中了。 - user3126748
之前的解决方案都不适用于我,所以我想分享一下我的解决方法,或许能帮到其他人。 - user3126748
抱歉,我撤回了我的NAA标记。 - FelixSFD

1
尝试使用<p:accordionPanel activeIndex="null" multiple="true" ...>。如果您写了 <p:accordionPanel activeIndex="x" multiple="true" ...> 这样的内容,PrimeFaces 会产生 JavaScript 错误“ReferenceError:x 未定义”。该函数明显需要一个有效的数字作为 activeIndex,但能够处理“null”而不出错。

抱歉,我本想写三个点,但系统误解了实体。我已经修复了,… 不应该出现在那里。 - Richard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接