首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在primefaces <p:tabView>`中停止TabChange

在primefaces <p:tabView>`中停止TabChange
EN

Stack Overflow用户
提问于 2015-05-07 16:57:21
回答 2查看 2K关注 0票数 0

我使用的是Primefaces 5和use,它有几个选项卡。

在每个选项卡中,我都有一个dataTable,它可以是可编辑的,也可以是不可编辑的,这取决于用户的操作。

如果用户正在编辑一行,我希望停留在相同的选项卡中,并防止选项卡更改,否则转到单击的选项卡。我该怎么做??

这是我的xhtml:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
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;
    }

}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30096352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档