如何使用命令按钮切换到选项卡(<p:tab>
) ?
还有一个客户端api方法叫做selectTab(index);
<p:commandButton type="button" onclick="widgetvar.selectTab(2)" value="Show" />
p:tabView
有一个属性activeIndex
,它是" active tab的Index " (Primefaces Documentation)。
您可以从p:commandButton
的操作方法设置此属性:
<p:commandButton value="Switch tab" action=#{myBean.switchTab} />
在后台bean中定义一个动作方法switchTab(),并让它设置一个成员activeTab
。
然后使用此成员设置活动选项卡
<p:tabView activeIndex=#{myBean.activeTab}>
如果您的服务器支持EL 2.2,您可以使用action方法调用设置活动选项卡的索引:
<p:commandButton value="Switch tab" action=#{myBean.switchTab(2)} />
那么你可以使用你的action方法调用的参数来直接设置活动索引
我使用Primefaces 5.1,我所做的是在ManagedBean中绑定tabView并在那里设置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" />
在服务器端,您可以使用p:tab的activeIndex属性绑定一个整数变量,然后执行方法来设置index