gpt4 book ai didi

jsf - primefaces tabView activeIndex 问题

转载 作者:行者123 更新时间:2023-12-02 03:22:50 26 4
gpt4 key购买 nike

我有 Primefaces TabView 和两个选项卡,例如:

<p:tabView dynamic="true" cache="false"
onTabShow="scrollBottom(#{stanzaBean.activeIndex})"
tabChangeListener="#{messaggioBean.onTabChange}"
activeIndex="#{stanzaBean.activeIndex}" >

它工作正常,除了当我更改选项卡时,服务器上的 activeIndex 不会更新,并且它始终返回默认值。我正在使用 primefaces 2.2.1。

谢谢。

最佳答案

按照 PrimeFaces ShowCase example 进行操作,如果给每个选项卡一个 id:

<p:tabView tabChangeListener="#{indexBean.onTabChange}" >
<p:tab title="tab 0" id="tab0"></p:tab>
<p:tab title="tab 1" id="tab1" ></p:tab>
<p:tab title="tab 2" id="tab2"></p:tab>
</p:tabView>

您可以在 tabChangeListener 中获取该选项卡 ID。

public void onTabChange(TabChangeEvent event) {       
System.out.println("tab id = " + event.getTab().getId());
}

然后您就会知道选择了哪个选项卡。

<小时/>

编辑:

有一个开放的 PrimeFaces issue 1640 TabView: Wrong activeIndex in TabChangeListener, always 0关于你遇到的问题。

<小时/>

编辑2:

在 PrimeFaces 5.0 及更高版本中,tabChangeListenertabView 元素上不再可用,但应通过带有 tabChange 事件的显式 ajax 标记来使用。

 <p:tabView id="analysisSections" value="#{analysisBean.analysis.sections}" var="section" activeIndex="#{analysisBean.activeIndex}">
<p:ajax event="tabChange" listener="#{analysisBean.onTabChange}"/>

您还可以直接获取选项卡索引:

public void onTabChange(TabChangeEvent event) {
activeIndex = ((TabView) event.getSource()).getIndex();
}

完成所有这些更改后,activeIndex 可以正常工作。

关于jsf - primefaces tabView activeIndex 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com