【发布时间】:2015-07-17 17:56:43
【问题描述】:
我正在使用 Primefaces 5 并使用具有多个标签的。
在每个选项卡中,我都有一个数据表,可以根据用户操作进行编辑或不可编辑。
如果用户正在编辑一行,我想留在同一个选项卡中并防止选项卡更改,否则转到单击的选项卡。我该怎么做??
这是我的 xhtml:
<p:tabView id="customerTab"
orientation="left"
dynamic="false"
cache="false"
widgetVar="detailsTab"
activeIndex="#{myBean.activTab}"
>
<p:ajax event="tabChange" listener="#{myBean.onTabChange}" update="customerTabv" />
<p:tab tab1> </p:tab>
<p:tab tab2> </p:tab>
这是我的后台bean:
public void onTabChange(
TabChangeEvent event) {
if (Tab.isInEditMode()) {
FacesMessage msg = new FacesMessage("Tab Changed", "Active Tab: " + event.getTab().getId()
+ "You can not change the tab when you are in Edit mode!");
FacesContext.getCurrentInstance().addMessage(null, msg);
this.messagesTab.setActiveIndex(0);
// // RequestContext.getCurrentInstance().execute("tabWidget.select(0)");
activTab = 0;
FacesContext.getCurrentInstance().setProcessingEvents(false);
} else {
TabView tabView = (TabView) event.getComponent();
int activeIndex = tabView.getChildren().indexOf(event.getTab());
this.messagesTab.setActiveIndex(activeIndex);
activTab = activeIndex;
}
}
【问题讨论】:
标签: jsf-2 primefaces tabview