6

あるフォームp:treeTablep:dialog別のフォームに があり、そこからp:dialogデータを追加しますp:treeTable

h:commandButtonダイアログの送信時にp:treeTable、追加されたノードを表示するために更新を追加します

問題は、ユーザーが開いたすべての展開されたノードがすべて折りたたまれることです

私はこの質問を見つけました 更新後の p:treeTable の崩壊の回避 は、彼が書いた質問で解決しましたが、彼の質問に対する回答または解決策はありません

4

3 に答える 3

17

折りたたみや展開を避けるには、Java 側でノードを折りたたみまたは展開としてマークする必要があります。これを行うには、いくつかの ajax 呼び出しといくつかのリスナー メソッドを追加するだけです。

JSF/顔:

<p:tree ...>
    <p:ajax event="expand" listener="#{backing.nodeExpand}" />
    <p:ajax event="collapse" listener="#{backing.nodeCollapse}" />
...
</p:tree>

Java/バッキング:

public void nodeExpand(NodeExpandEvent event) {
    event.getTreeNode().setExpanded(true);      
}

public void nodeCollapse(NodeCollapseEvent event) {
    event.getTreeNode().setExpanded(false);     
}
于 2015-01-14T12:25:14.503 に答える
1

PrimeFaces Tree Events Showcaseによると、update ステートメントを使用するのを忘れていました。

于 2015-02-12T18:50:04.353 に答える
1

ツリー内でアクションまたは actionListener を呼び出そうとすると、すべてのノードと親を消費する必要があります。これを行わないと、機能せず、エラーも表示されません。

node.setExpanded(true);
node.getParent().setExpanded(true);
于 2015-05-13T01:53:16.483 に答える