3

我正在使用 Primefaces 3.4(也尝试过 3.3)和 Mojarra 2.1.7。但是我在更新 ap: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>

不同的选项卡包含需要单独提交的单独表格。因此我有不止一种形式的方法。

4

2 回答 2

3

好吧,这必须解决问题:

<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>
于 2012-09-13T11:30:46.153 回答
0

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

:formID:tabViewID

它终于奏效了。只是让你知道。

于 2016-11-22T08:03:52.757 回答