Primefaces Accordion:actionListener映射到不再调用的remoteCommand

时间:2014-01-13 22:12:36

标签: primefaces

“不再”绝对是这里的关键词。我有这个工作,甚至在比较我之前的修订后,我看不到一支冒烟的枪。

我在我的布局西侧的导航面板上放了一个手风琴。我已经覆盖了actionListener来调用一个remoteCommand,就像这样。

<p:accordionPanel widgetVar="tabPanel"
                    dynamic="true" cache="true"
                    activeIndex="-1"
                    actionListener="tabChange()">

        <p:remoteCommand  name="tabChange"
              process="@this"
              update=":contentPanel"
              actionListener="#{viewSelectionBean.changeView}" />

当点击任何给定的选项卡时,它用于调用支持bean方法changeView,它设置html页面显示在“:contentPanel”中,但现在我没有得到支持bean操作。我在每个手风琴选项卡中都有commandLinks,它们也成功调用了changeView。它只有tabChange()似乎没有被调用。

1 个答案:

答案 0 :(得分:0)

actionListener不是accordionPanel的属性,因此,这就是为什么它不会被调用。此功能可以使用ajax工作,但它在展开每个选项卡时显示滞后。除了延迟之外,还可以成功覆盖accordionPanel的onTabChange,但这将迫使您必须手动生效activeIndex,以及扩展标签。

<p:accordionPanel widgetVar="tabPanel"
                    dynamic="true" cache="true"
                    activeIndex="-1">

   <p:ajax event="tabChange"
                listener="#{viewSelectionBean.onTabChange}"
                update=":contentPanel"
                process="@this"
                partialSubmit="true"/>