我正在使用JSF进行开发&在我当前的一个项目中使用了Primefaces和accordionPanel组件。这是一个关于我如何使用它的代码片段:
<p:accordionPanel id="historic" dynamic="true"
styleClass="noborder"
activeIndex="-1">
<p:tab id="tab1" title="Historic 1" >
<ui:include src="historic1.xhtml"/>
</p:tab>
<p:tab id="tab2" title="Historic 2">
<ui:include src="historic2.xhtml"/>
</p:tab>
<p:tab id="tab3" title="Historic 3">
<ui:include src="historic3.xhtml"/>
</p:tab>
<p:tab id="tab4" title="Historic 4">
<ui:include src="historic4.xhtml" />
</p:tab>
</p:accordionPanel>
所有的选项卡包含基本相同的代码,一个表单与一些数据指向不同的数据集。正如你们所看到的,它非常简单,工作正常,除了最后一个标签。不管里面装的是什么,它从来没有展示过。我的意思是,如果,代替上面的代码,我用另一个:
<p:accordionPanel id="historic" dynamic="true"
styleClass="noborder"
activeIndex="-1">
<p:tab id="tab1" title="Historic 1" >
<ui:include src="historic1.xhtml"/>
</p:tab>
<p:tab id="tab2" title="Historic 2">
<ui:include src="historic2.xhtml"/>
</p:tab>
<p:tab id="tab3" title="Historic 3">
<ui:include src="historic3.xhtml"/>
</p:tab>
<p:tab id="tab4" title="Historic 4">
<ui:include src="historic4.xhtml" />
</p:tab>
<p:tab id="tab5" title="Historic 5">
Some plain test text.
</p:tab>
</p:accordionPanel>
则现在显示tab4,但tab5不显示。我目前正在使用这最后一个代码,但它有点丑,因为空选项卡。你们中有谁遇到过相同或类似的问题,可以帮助我吗?非常感谢。
从主面vdl: http://www.primefaces.org/docs/vdl/3.4/primefaces-p/accordionPanel.html
activeIndex
活动选项卡的索引或以逗号分隔的索引字符串开启多模式。默认为0。
将其设置为-1可能有原因,如果将其设置为0或正数
accordionPanel索引是从零开始的索引。第一个选项卡是0,第二个选项卡是1,以此类推。这就是为什么我尝试使用"-1"作为索引,因为我不想默认打开任何选项卡。但是这个值(-1)会在accordionPanel中产生故障:最后一个选项卡不能正常打开。因此,如果-1不起作用,0是第一个选项卡的值,那么"超过"最后一个选项卡的值呢?我的意思是,如果我们有4个标签(从0到3的索引),让我们尝试4…这是有效的。那么简单。我希望这能对任何遇到同样问题的人有所帮助。无论如何,谢谢@Aksel Willgert,你给了我线索。