2012-02-07 21 views
2

私はPFフォーラムでこれを尋ねましたが、私はここで私の運を試してみたいと思います。JSF Primefaces TabViewの問題

私はそれがTabViewの中にあるときにAjax呼び出しの後で正しく更新されないui:repeatを持っています。

シンプルなシナリオでは、ArrayList(ArrayListにはStringを持つ単純なpojosが含まれています)をポイントしているui:repeatがあります。この中にはh:inputTextがあり、その値はpojoのString getter/setterです。 ui:repeatは、h:panelGroup内に含まれています。私はp:commandButtonを使ってArrayListを更新するアクションを実行します(オブジェクトのいくつかをStringのMath.random値に追加してからh:panelGroupを更新します)。 ArrayListの更新された値は、ui:repeat入力フィールドに反映されません。これは、outputTextフィールドが正しく更新されるため、入力フィールドに影響するように見えます。また、私がp:dataTableに対して同じことを行うと、入力フィールドが正しく更新されます。 TabviewタグとTabタグを削除するとうまく動作します。

タブを削除するときに動作するので、これはバグだと思うだけで、このように動作するようには設計されていません。誰かがこれがそうであるかどうか、または実行可能な仕事があるかどうかを確認してください。フィールドは表形式ではないので、私はui:repeatを使用する必要があります。これは、PF 2.2からの移行以降に発生しています。私は、これはPrimefacesのcommandButtonのバグのようなものです、現在

2.0.4 PF 3.1は、WebLogic 10.3.4およびクロサギ科の
<p:tabView> 
    <p:tab title="Test"> 

     <h:form prependId="false"> 

      <p:commandButton id="testStringCheck" 
          value="Test String Check" 
          process="@form" 
          update="testPanel" 
          action="#{testBean.generateVOwithRandomStrings}"> 
      </p:commandButton> 

      <h:panelGroup id="testPanel" layout="block"> 
       <ui:repeat value="#{testBean.voList}" var="entry"> 
        <h:outputText value="#{entry.randomString}"/> 
        <p:inputText style="display:block;" 
           value="#{entry.randomString}" 
           size="15"> 
        </p:inputText> 
       </ui:repeat> 
      </h:panelGroup> 

     </h:form> 

    </p:tab> 
</p:tabView> 

答えて

0

です。次のスレッドを参照してください:

http://forum.primefaces.org/viewtopic.php?f=3&t=17454

あなたがここに上記のリンクからも<h:commandLink>

<h:commandLink id="testStringCheck" render="@form"/> 

<p:commandLink id="testStringCheck" ... update="@form" /> 

を交換してくださいすることができますことは、誰かがそれを可能に掲示興味深い方法であり、更新する正しいclientIdを正しく見つけることができます。データグリッドの代わりに、UI:繰り返し私がpを使用しました回避策として

http://paste.kde.org/177698/

+0

返信ありがとうございますが、これで問題は解決されませんでした。私はすでにh:commandButtonとpfバージョンのリンクを試しています。 – andyfinch

+0

@andyfinchプロセス属性を削除しようとしましたか?おそらく必要ないでしょう。 –

+0

デフォルトはフォームに設定されていますか?たとえそれがあっても、読みやすさのためにそれを追加します。 – andyfinch

1

。これは私がui:repeatで持っていた外観を実現するので、私は満足しています。うまくいけば、このバグは将来のリリースで修正される予定です。

0

一時溶液:panelGroup:時間外挿入

<p:outputPanel defered="true" delay="1" ..> 

、代わりpanelGroup

またはその代わりに、UIのデータリストコンポーネントの使用outputPanel更新:リピート。

もう一つ、私はよく分からないが、あなたがしようとし、そのクラスの代わりにIDを更新することができます。

<h:panelGroup id="testPanel" layout="block" styleClass="testPanelCl" ../> 

および更新:@(.testPanelCl)、IDなしでJSFがで更新することはできません、panelGroupのIDを忘れてはいけませんクラス

関連する問題