избегайте узлов p: treeTable для сворачивания после обновления

у меня есть p:treeTable в форме и p:dialog в другой форме, где с p:dialog Я добавляю данные в p:treeTable

на прием h:commandButton диалога я добавляю обновление p:treeTable in orded, чтобы увидеть добавленный узел

проблема в том, что все развернутые узлы, открытые пользователем, будут свернуты

Я нашел этот вопрос избежать коллапса p: treeTable после обновления который в вопросе, который он написал, решен, но нет ответа или решения для его вопрос!--7-->

3 ответов


чтобы избежать сворачивания или расширения, вы должны пометить свой узел на стороне java как свернутый или расширенный. Для этого просто добавьте некоторые вызовы ajax и некоторые методы прослушивателя.

JSF / Faces:

<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);     
}

по данным Витрина Событий Дерева PrimeFaces вы забыли использовать инструкцию Update.


Если вы попытаетесь вызвать любое действие или actionListener внутри дерева, вам нужно израсходовать все узлы и родители, с вами этого не делать, это только не работает и не показывает никакой ошибки.

node.setExpanded(true);
node.getParent().setExpanded(true);