我需要能够识别与p:accordionPanel
中每个标签(或行)相关联的实体。例如。如果行对应于ID为1,2,3的实体,当我单击每个选项卡时,我想触发由使用该选项卡的ID的控制器处理的事件。 IOW,我需要每个选项卡和控制器之间的引用指针。
从我之前的帖子中可以看出,ID属性不起作用。如何在视图中的每个选项卡和控制器之间建立标识引用?
答案 0 :(得分:1)
您可以尝试使用accordionPanel的activeIndex属性,该属性是活动选项卡的索引。
<p:accordionPanel activeIndex="#{playgroundController.activeIndex}">
<p:ajax event="tabChange" listener="#{playgroundController.onTabChange()}" />
<p:tab title="Godfather Part I">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText
value="The story begins as Don Vito Corleone..." />
</h:panelGrid>
</p:tab>
<p:tab title="Godfather Part II">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="Francis Ford Coppola's legendary..." />
</h:panelGrid>
</p:tab>
<p:tab title="Godfather Part III">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="After a break of more than 15 years..." />
</h:panelGrid>
</p:tab>
</p:accordionPanel>
豆:
private String activeIndex = "";
public void onTabChange() {
logger.debug("onTabChange : activeIndex : {} ", activeIndex);
}
点击其中一个标签时点击:
09:38:55,822 DEBUG [PlaygroundController] onTabChange : activeIndex : 0
09:38:56,625 DEBUG [PlaygroundController] onTabChange : activeIndex : 1
09:38:57,426 DEBUG [PlaygroundController] onTabChange : activeIndex : 2