点击上的primefaces选项卡

时间:2013-07-18 13:24:53

标签: primefaces tabs onclick

我有一个这样的primefaces标签视图:

<p:tabView id="tabView">  
    <p:tab id="tab1" title="Godfather Part I">  
        This tab has static content.
    </p:tab>  

    <p:tab id="tab2" title="Godfather Part II">  
        this tab has a datatable whose  
    </p:tab>  
</p:tabView>

现在,我想要做的是,当用户点击tab2时触发一个managedbean方法。我可以在tabView的tabchange事件上添加一个actionlistener,但这也会在点击tab1时触发该方法。如何仅在单击tab2时触发方法?

1 个答案:

答案 0 :(得分:11)

单击tabView的每个选项卡将调用动作侦听器。 但您可以通过这样的条件块来控制您的动作侦听器。 这是一个例子:

<p:tabView id="tabView" dynamic="true">

    <p:ajax event="tabChange" listener="#{Bean.onTabChange}" update=":messages" />
    <p:tab id="tab1" title="#{userLbl['notification.headerIncoming']}">
    <p:tab id="tab2" title="#{userLbl['notification.headerOutgoing']}">
</p:tabView>

动作侦听器:

public void onTabChange(TabChangeEvent event) {

   if (event.getTab().getId().equals("tab1")) {
       //Your actions for tab1
   } else if((event.getTab().getId().equals("tab2")) {
     //Your actions for tab2
   }
}