2016-06-15 4 views
0

下の画像を参照してください。PrimeFaces 5.3の最後のパネルを削除すると、すべてのパネルが消えます

image

これらの画像は、物事が私の現在のコードでどのように機能するかを示しています。最後のパネルを削除して更新ボタンを押すと、すべてのパネルが何とか消えます。 これは他のパネルでも同じように動作します。

誰もがこの問題の解決方法を知っていれば、大きな助けになるでしょう。 ありがとうございます。私は(念のため)以下のコードを貼らまし

【XHTML】

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:ui="http://java.sun.com/jsf/facelets"> 
     <h:head></h:head> 
     <h:body> 
     <h:form> 
      <ui:repeat value="#{newapp001.list}" var="item" > 
      <p:panel header="#{item}" closable="true" > 
       <p>my information</p> 
      </p:panel> 
      </ui:repeat> 
      <p:commandButton value="Update" update="@form" /> 
     </h:form> 
     </h:body> 
    </html>

【ManagedBean】 パッケージサンプル;

import java.io.Serializable; 
import java.util.ArrayList; 
import java.util.List; 

import javax.enterprise.context.SessionScoped; 
import javax.inject.Named; 

@Named("newapp001") 
@SessionScoped 
public class NewApp001 implements Serializable 
{ 
    private static final long serialVersionUID = 2610647621325923945L; 

    private List<String> list; 

    public NewApp001() 
    { 
     this.list = new ArrayList<>(); 
     this.list.add("aaa"); 
     this.list.add("bbb"); 
     this.list.add("ccc"); 
     this.list.add("ddd"); 

     return; 
    } 

    public List<String> getList() 
    { 
     return this.list; 
    } 
} 
+0

クリックしましたコマンドボタン、 "@フォーム"を更新します。これは、あなたのbeanのすべてのgetterを呼び出すことを意味します。あなたはアップデートを実行する前にセッターに電話するajaxリクエストのプロセスを呼び出さなかった –

+0

あなたのコメントをありがとう。答えでわかるように、 "@form"の更新は実際問題ではありませんでした。 "process =" @ this ""を置いた後は、私が期待したように動作しました。 – Karen

答えて

0

ボタンを押すと、パネルの表示状態が送信されます。それは間違いなくPFバグです。最後にレンダリングされたパネルの状態がすべてのパネルに影響を与えます。あなたは、視認性の状態を追跡することに興味があるように思えませんので

、最も簡単な修正は、このようにサーバ上の表示状態を保存しない、パネルを処理しないために、次のようになります。

<p:commandButton value="Update" process="@this" update="@form" /> 
+0

ありがとうございます。あなたが説明したようにコードを修正した後、うまくいきました。しかし実際は私は可視性の状態を追跡することに非常に関心があります。実際には資本の問題ではないように見えるコードをいくつか削除しました。私は現在、固定コードを追跡するときに、どのように動作するかを見ようとしています。おそらく別の質問をするでしょう。 – Karen

関連する問題