我尝试创建一个用bean动态加载的accordion panel
,并且当用户点击tab
时,它必须触发其他bean上的方法,该方法会获得点击标签标题。面板创建运行良好,并且也调用了监听器,但是监听器没有获得被点击的项目title.can任何人都指出了问题或者指出了正确的方法。
.xhtml
<p:accordionPanel activeIndex="-1" dynamic="true" cache="false"
value="#{beanOne.ItemList}"
var="item">
<p:ajax event="tabChange" listener="#{beanTwo.onTabChange}" />
<p:tab title="#{item.title}">
//view other content of item
</p:tab>
</p:accordionPanel>
豆
public void onTabChange(TabChangeEvent event) {
System.out.println("onTabChange :"+event.getTab().getTitle());
}
我认为这是因为面板动态加载了标签。但还有其他选择吗?
答案 0 :(得分:1)
最后我做到了。
我像这样改变我的bean onTabChange方法。它正在工作......
Object o = event.getData();
Item t = (Item) o;
System.out.println("onTabChange :"+t.getTitle);
它没有给tab.title但它给出了与该被点击的标签相关的对象(项)。