【问题标题】:Dynamic accodion panel passing variable in ajaxajax中的动态手风琴面板传递变量
【发布时间】:2013-12-02 09:36:12
【问题描述】:

我想将变量传递给 tabClos​​e 和 tabChange 上的 bean 方法——我想传递我单击的选项卡的索引。

<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 传递它?

【问题讨论】:

    标签: ajax jsf primefaces


    【解决方案1】:

    Primefaces Showcase 可以看出,您可以在 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 主页,它应该可以工作。

    编辑

    经过测试 - 有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      • 2016-08-10
      • 2015-10-08
      • 2018-11-30
      相关资源
      最近更新 更多