3

Primefaces 3.4(3.3も試しました)とMojarra2.1.7を使用しています。しかし、ap:tabView内の動的タブを更新する際に問題が発生します。

タブを追加するボタンが2つあります。最初のボタンはp:tabViewの外側にあります。このボタンをクリックすると、バッキングBeanが呼び出され、p:tabViewが更新され、新しいタブが表示されます。しかし、そのtabViewのタブ内にある2番目のボタンをクリックすると、バッキングBeanが呼び出されますが、tabViewは更新されません。

この更新の欠如は、動的タブでのみ発生します。与えられた例を変更してタブを1つだけにし、ボタンをクリックすると変化する値を表示すると、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を追加しました。 update属性、フォームIDとtabviewIdを次のように追加しました。

:formID:tabViewID

そしてついにそれは機能した。ちょうどあなたが知っているので。

于 2016-11-22T08:03:52.757 に答える