活動索引沒有自動更新。在幾篇文章中提到將tabView放在一個表單上。或者通過在tabview中包含<p:ajax event="tabChange"/>
它可以工作。但似乎沒有任何工作tabview的活動索引沒有自動更新
XHTML
示例1:自動更新
<p:tabView id="categoryTabView" var="promoArticle" value="#{promotionDetailBean.artDTOs}" activeIndex="#{promotionDetailBean.activeTabIndex}">
<p:tab id="categoriesTab" title="#{promoArticle.categoryName}">
<p:dataTable id="promotionDetail_dataTable" var="articlePromo" value="#{promoArticle.artVO}" selection="#{promotionDetailBean.selectedArt}" rowIndexVar="rowIndex">
<p:column id="select" selectionMode="multiple" />
<p:column id="barCode">
<h:inputText id="barCodeInputTxt" value="#{articlePromo.barCode}"
styleClass="inputTextStyle" onchange="onSuggestedValueChange('categoryTabView',#{promotionDetailBean.activeTabIndex}, 'promotionDetail_dataTable',#{rowIndex},'originalCostInputTxt')" />
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
樣品2:tabChange事件更新
<h:form id="form">
<p:growl id="growlm" showDetail="true" />
<p:tabView id="categoryTabView" var="promoArticle" value="#{promotionDetailBean.artDTOs}" >
<p:ajax event="tabChange" listener="#{promotionDetailBean.tabChanged}" update=":growlm" />
<p:tab id="categoriesTab" title="#{promoArticle.categoryName}">
<p:dataTable id="promotionDetail_dataTable" var="articlePromo" value="#{promoArticle.artVO}" selection="#{promotionDetailBean.selectedArt}" rowIndexVar="rowIndex">
<p:column id="select" selectionMode="multiple" />
<p:column id="barCode">
<h:inputText id="barCodeInputTxt" value="#{articlePromo.barCode}"
styleClass="inputTextStyle" onchange="onSuggestedValueChange('categoryTabView',#{promotionDetailBean.activeTabIndex}, 'promotionDetail_dataTable',#{rowIndex},'originalCostInputTxt')" />
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
我需要識別「onChange」事件上的單元格。但activeIndex始終爲0,即初始化值。該事件沒有得到通話。
豆
private Integer activeTabIndex = 0;
public Integer getActiveTabIndex() {
return activeTabIndex;
}
public void setActiveTabIndex(Integer activeTabIndex) {
this.activeTabIndex = activeTabIndex;
}
豆
public void tabChanged(TabChangeEvent event){
TabView tv = (TabView) event.getComponent();
this.activeTabIndex = tv.getActiveIndex();
}
但該事件沒有得到trigerred。也不會自動更新。
可能的問題是什麼?
感謝, Shikha
這似乎只有在[活動索引不綁定到託管bean](http://code.google.com/p/primefaces/issues/detail? ID = 1640&q = activeIndex&colspec = ID%20Stars%20Module%20Type%20Status%20Priority%20TargetVersion%20Reporter%20Owner%20Summary)。我很驚訝Primefaces團隊還沒有解決它(我正在使用3.5版本)。然而,如果'tabView'本身被封裝到一個表單中,而不是每個標籤都有一個表單,它就可以工作。 – 2013-02-26 12:45:00
this.activeTabIndex = tv.getActiveIndex(); 不起作用。相反,你可以使用 this.activeTabIndex = tv.getChildren()。indexOf(event.getTab()); – ahmet 2013-06-26 11:09:35
索引是以0還是1開頭? – xav56883728 2015-04-10 10:34:48