ajax中的动态accodion面板传递变量
我想将变量传递给tabClose和tabChange上的bean方法——我想传递我单击的选项卡的索引ajax中的动态accodion面板传递变量,ajax,jsf,primefaces,Ajax,Jsf,Primefaces,我想将变量传递给tabClose和tabChange上的bean方法——我想传递我单击的选项卡的索引 <p:accordionPanel id="layerListAccordionPanel" multiple="true" activeIndex="#{layersModelMock.activeIndex}" value="#{layersModelMock.layerCategories}" var="category"> <p:ajax event="tabC
<p:accordionPanel id="layerListAccordionPanel" multiple="true" activeIndex="#{layersModelMock.activeIndex}" value="#{layersModelMock.layerCategories}" var="category">
<p:ajax event="tabClose" listener="#{layersController.deselectCategory(category.id)}" />
<p:ajax event="tabChange" listener="#{layersController.selectCategory(category.id)}" />
<p:tab id="layerPanel" title="#{category.name}" closable="true">
Test
</p:tab>
</p:accordionPanel>
试验
当我测试上面的代码时,我总是通过“0”。我不知道如何获取选项卡的索引并通过ajax传递它?正如您从中看到的,您可以在bean中使用选项卡更改作为事件
public void onTabClose(TabCloseEvent event) {
deselectCategory(event.getTab().getId());
}
public void onTabChange(TabChangeEvent event) {
selectCategory(event.getTab().getId());
}
您需要相应地调整XHTML
<p:accordionPanel id="layerListAccordionPanel" multiple="true" activeIndex="#{layersModelMock.activeIndex}" value="#{layersModelMock.layerCategories}" var="category">
<p:ajax event="tabClose" listener="#{layersController.onTabChange}" />
<p:ajax event="tabChange" listener="#{layersController.onTabClose}" />
<p:tab id="#{category.id}" title="#{category.name}" closable="true">
Test
</p:tab>
</p:accordionPanel>
试验
我自己还没有测试过,但根据Primefaces主页,它应该可以工作
编辑
测试-工作