Dynamic Primefaces:tabView不会更新

时间:2012-09-13 08:07:41

标签: jsf primefaces

我正在使用Primefaces 3.4(也尝试过3.3)和Mojarra 2.1.7。但是我在p:tabView中更新我的动态标签时遇到了问题。

我有2个按钮,应该添加一个额外的标签。第一个按钮位于p:tabView之外。单击此按钮时,将调用辅助bean,更新p:tabView,并显示新选项卡。但是,当我单击第二个按钮(位于该tabView的选项卡内)时,将调用支持bean,但不会更新tabView。

这种缺乏更新仅在动态标签中出现。当我修改给定的示例只有一个选项卡,并显示一个单击按钮时更改的值时,tabView将由两个按钮更新,并显示新的值。所以这只是一个问题,只出现在动态标签中。

这是我的代码。

   <f:view contentType="text/html">
        <h:form>
            <p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/>
        </h:form>

        <p:tabView id="ApplicationTab" cache="false" dynamic="false"  var="tab" value="#{idTestBean.tabList}">
            <p:tab title="tab" closable="false" >
                <p:panel>
                    <h:form>
                        <p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/>
                    </h:form>

                    #{idTestBean.count}
                </p:panel>

            </p:tab>
        </p:tabView>
    </f:view>

不同的标签包含需要单独提交的单独表格。因此,我有多种形式的方法。

2 个答案:

答案 0 :(得分:2)

这一定要做到这一点:

<f:view contentType="text/html">
    <h:form>
        <p:commandButton value="press me" action="#{idTestBean.addTab}" update="@form"/>


    <p:tabView id="ApplicationTab" cache="false" dynamic="false"  var="tab" value="#{idTestBean.tabList}">
        <p:tab title="tab" closable="false" >
            <p:panel>

                    <p:commandButton value="press me" action="#{idTestBean.addTab}" update="@form"/>


                #{idTestBean.count}
            </p:panel>

        </p:tab>
    </p:tabView>
    </h:form>
</f:view>

答案 1 :(得分:0)

今天我也遇到了同样的问题,我有一个动态tabview,并且在标签内部,有一些面板需要在标签更改时更新,所以我做的是,我在事件TabChange上添加了p:ajax ,在update属性中,我添加了表单id和tabviewId,如下所示:

:formID:tabViewID

它终于奏效了。 你知道吗