Jsf 2 选中在p:tabView中访问的选项卡。onTabShow事件的用法?
我试图在控制器bean中跟踪p:tabView的哪些选项卡已经被访问(通过选项卡id)。 由于某些原因,我不想使用onTabChange事件(由于其他原因已被阻止)。 因此,我试图通过p:tabView的onTabShow事件来实现我的用例。但还没有成功。我第一次尝试使用p:ajax侦听器:Jsf 2 选中在p:tabView中访问的选项卡。onTabShow事件的用法?,jsf-2,primefaces,Jsf 2,Primefaces,我试图在控制器bean中跟踪p:tabView的哪些选项卡已经被访问(通过选项卡id)。 由于某些原因,我不想使用onTabChange事件(由于其他原因已被阻止)。 因此,我试图通过p:tabView的onTabShow事件来实现我的用例。但还没有成功。我第一次尝试使用p:ajax侦听器: <p:tabView> <p:ajax event="tabShow" listener="#{myBean.checkTab(event)}" .../> 结果是错误消息
<p:tabView>
<p:ajax event="tabShow" listener="#{myBean.checkTab(event)}" .../>
结果是错误消息:p:ajax中不支持tabShow
第二次尝试是使用remoteCommand:
...
但是如何将事件作为参数传递给我的bean方法以从中获取tab对象呢
是否有人可以帮助我或有其他想法如何跟踪我的bean中访问的标签?
也许有一个tabView的绑定?但是怎么做呢
谢谢 您可以在不指定事件的情况下使用
。也就是说,您可以通过
将
上的activeIndex
属性绑定到支持bean属性
<p:tabView activeIndex="#{bean.selectedTabIndex}">
<p:ajax listener="#{myBean.checkTab}" .../>
</p:tabView>
在你看来:
<p:tabView>
<p:ajax listener="#{myBean.checkTab}"/>
那么,当有人第一次选择一个标签时,你想跟踪它吗?是否只记录选项卡的索引,或者对其执行什么操作?我希望确保在启用“保存”按钮之前访问所有未禁用的选项卡。所以我想跟踪用户访问的标签的id。谢谢你的回答。遗憾的是,我已经试过了。中不支持tabShow-事件。至少在PF 3.4.x中。但是如果这在3.5中发生了变化,那么很抱歉,我没有提到我们正在使用的PF版本。@user2894170-我的错误,代码示例可能更清晰。查看我的更新
public void checkTab(AjaxBehaviorEvent abe){
TabView tb = (TabView) abe.getComponent();
List<Tab> loadedTabs = tb.getLoadedTabs();
Tab theTab = loadedTabs.get(tb.getActiveIndex());
}
<p:tabView>
<p:ajax listener="#{myBean.checkTab}"/>