2012-10-14 45 views
1

我有一个p:tabMenu它用于显示选项卡。如何使用p:tabMenu和Ajax

<p:tabMenu id="tabs" activeIndex="0" > 
    <p:menuitem value="tab1" url="/tab1.jsf" /> 
    <p:menuitem value="tab2" url="/tab2.jsf" /> 
</p:tabMenu> 

为了使标签更顺畅的装载(我不希望看到的标签闪烁)我可以采用某种使用Ajax?

+0

如果加载的视觉方面是您更感兴趣的内容,只需将该选项卡的“效果”属性设置为任何受支持的pf效果即可。无论如何,Tabviews是默认的 – kolossus

回答

2

在您的<p:tabMenu/>上设置dynamic="true",自动触发ajax请求。在primefaces演示网站上非常明显。另请参阅primefaces demo

编辑:更仔细地考虑你的问题,如果是平滑在你正在寻找的视觉效果,您应该在标签effect参数设置为任何primefaces effects的。我个人最喜欢的是effect="slide"

3

缓存(cache=true)选项卡的内容将使加载更加流畅。缓存是默认启用的。另外,如果你想在每一个标签的变化Ajax调用使用tabChange事件:

<p:tabMenu id="tabs" activeIndex="0" dynamic="true"> 

    <p:ajax event="tabChange" listener="#{tabBean.onTabChange}"/> 

    <p:menuitem value="tab1" url="/tab1.jsf" /> 
    <p:menuitem value="tab2" url="/tab2.jsf" /> 
</p:tabMenu> 

有关详细示例,请参见TabView - Change Listener演示。