Как переключить p:tab в ту же форму с помощью командной кнопки

Как переключиться на вкладку (<p:tab>) с помощью командной кнопки?


person Bryn    schedule 18.04.2011    source источник


Ответы (4)


Существует также метод API на стороне клиента, который называется selectTab(index);

<p:commandButton type="button" onclick="widgetvar.selectTab(2)" value="Show" />
person Cagatay Civici    schedule 18.04.2011
comment
Анонимный пользователь редактирует ваше сообщение (которое было отклонено). Но я подумал, что редактирование стоит добавить в качестве комментария: 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)} />

Затем вы можете использовать аргумент вызова метода действия, чтобы напрямую установить активный индекс.

person Matt Handy    schedule 18.04.2011

Я использую 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);

Надеюсь, что это работает :)

person imTachu    schedule 30.12.2014

Для переключения p:tab в той же форме с помощью командной кнопки Только на стороне клиента вы можете использовать widgetVar для выбора/просмотра вкладки следующим образом:

Примечание. tabIndex будет начинаться с 0 для первой вкладки.

<p:commandButton type="button" onclick="PF('tabWidgetVar').select(1)" value="Next" />

На стороне сервера вы можете связать целочисленную переменную со свойством activeIndex p:tab, а затем выполнить метод для установки индекса.

person Ambrish    schedule 15.02.2017
comment
Почему вы добавили повторяющийся ответ спустя годы? - person Betlista; 31.12.2019