Как переключиться на вкладку (<p:tab>
) с помощью командной кнопки?
Как переключить p:tab в ту же форму с помощью командной кнопки
Ответы (4)
Существует также метод API на стороне клиента, который называется selectTab(index);
<p:commandButton type="button" onclick="widgetvar.selectTab(2)" value="Show" />
Actually selectTab is depreciated..use select() instead
- person Martin York; 27.11.2011
p:tabView
имеет атрибут activeIndex
, который является «Индексом активной вкладки» (документация Primefaces).
Вы можете установить этот атрибут из метода действия вашего p:commandButton
:
<p:commandButton value="Switch tab" action=#{myBean.switchTab} />
Определите метод действия switchTab() в вашем поддерживающем компоненте и позвольте ему установить элемент activeTab
.
Затем используйте этого члена, чтобы установить активную вкладку
<p:tabView activeIndex=#{myBean.activeTab}>
Если ваш сервер поддерживает EL 2.2, вы можете установить индекс активной вкладки с помощью вызова метода действия:
<p:commandButton value="Switch tab" action=#{myBean.switchTab(2)} />
Затем вы можете использовать аргумент вызова метода действия, чтобы напрямую установить активный индекс.
Я использую Primefaces 5.1, и я привязал свой tabView к ManagedBean и установил там activeIndex.
В вашем JSF
<h:form prependId="false" id="form">
<p:tabView id="tabPanel" widgetVar="tabPanel" binding="#{managedBean.tabView}" dynamic="true">
<p:tab title="tab" >
<p:commandButton action="#{managedBean.getBla}"
icon="ui-icon-search" update=":form:tabPanel" immediate="true" >
...
В вашем ManagedBean
private TabView tabView;
public TabView getTabView() {
return tabView;
}
public void setTabView(TabView tabView) {
this.tabView = tabView;
}
И затем в методе, который вы вызываете в своем действии commandButton, вы просто делаете tabView.setActiveIndex(1);
Надеюсь, что это работает :)
Для переключения p:tab в той же форме с помощью командной кнопки Только на стороне клиента вы можете использовать widgetVar для выбора/просмотра вкладки следующим образом:
Примечание. tabIndex будет начинаться с 0 для первой вкладки.
<p:commandButton type="button" onclick="PF('tabWidgetVar').select(1)" value="Next" />
На стороне сервера вы можете связать целочисленную переменную со свойством activeIndex p:tab, а затем выполнить метод для установки индекса.