Активный указатель не обновляется автоматически. ReaD в нескольких сообщениях, поместив tabView в форму, в которой он работает. Или, включив в табуляцию <p:ajax event="tabChange"/>
, он работает. Но ничто не похоже на работуАктивный указатель табуляции не обновляется автоматически
Xhtml
Sample 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>
Sample 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
Это работает только в том случае, если [активный индекс не привязан к управляемому компоненту] (http://code.google.com/p/primefaces/issues/detail? ID = 1640 & д = activeIndex & colspec = ID% 20Stars% 20Module% 20Type% 20Status% 20Priority% 20TargetVersion% 20Reporter% 20Owner% 20Summary). Я удивлен, что команда Primefaces еще не разрешила (я работаю с версией 3.5). Однако он работает, если сам 'tabView' заключен в форму вместо формы для каждой вкладки. –
this.activeTabIndex = tv.getActiveIndex(); не работает. Вместо этого вы можете использовать this.activeTabIndex = tv.getChildren(). IndexOf (event.getTab()); – ahmet
индекс начинается с 0 или 1? – xav56883728