如何在点击命令按钮时动态地在曲面视图中添加选项卡?

时间:2014-03-10 06:46:25

标签: jsf primefaces

如何使用ajax点击命令按钮动态地在tabview primefaces中添加标签?

     <p:tabView id="tabview" dynamic="true" cache="false" 
    binding="#{TestBean.tabView}" 
    activeIndex="0" 
    scrollable="true">

        <p:tab title="tab1" closable="true">
            <h:outputLabel value="1"></h:outputLabel>
        </p:tab>
        <p:tab title="tab2" closable="true">
            <h:outputLabel value="2"></h:outputLabel>
        </p:tab>
        <p:tab title="tab3" closable="true">
            <h:outputLabel value="3"></h:outputLabel>
        </p:tab>
    </p:tabView>

支持bean

public class TestBean {

    TabView tabView;
    int id=0;



    public TestBean() {
    }

    public String addTab() {

        String tabId="tab"+id;
        Tab tab = new Tab();
        tab.setTitle("Title: "+tabId);
       tab.setId(tabId);

        tabView.getChildren().add(id,tab);

        id++;
        return "tabtest.jsf";
    }

    public TabView getTabView() {
        return tabView;
    }


    public void setTabView(TabView tabView) {
        this.tabView = tabView;
    }

这是我的支持bean。我是jsfPrimefaces的新手。请帮助。 谢谢。

1 个答案:

答案 0 :(得分:2)

在方法addTab()中,您可以添加

TabView tabView = new TabView();
Tab newTab = new Tab();            
newTab.setTitle("Tab Title");       
tabView.getChildren().add(newTab); 

您应该更新视图以反映新标签。使用RequestContext进行ajax更新。

RequestContext context = RequestContext.getCurrentInstance();  
  context.update("tabview");