避免p:treeTable的节点在更新后崩溃

时间:2014-08-18 07:35:20

标签: primefaces jsf-2.2 treetable

我在表单中有一个p:treeTable,在另一个表单中有一个p:dialog,其中p:dialog我将数据添加到p:treeTable

提交对话框的h:commandButton我添加了p:treeTable的更新,以便查看已添加的节点

问题是用户打开的所有扩展节点都将崩溃

我发现这个问题Avoiding the collapsing of p:treeTable after update在他写的问题中解决了,但没有回答或解决他的问题

3 个答案:

答案 0 :(得分:15)

为避免折叠或展开,您必须将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);     
}

答案 1 :(得分:1)

根据PrimeFaces Tree Events Showcase,您忘记使用更新声明。

答案 2 :(得分:1)

如果您尝试在树中调用任何操作或actionListener,您需要花费所有节点和父母,如果您不这样做,那么这只是不工作并且不会显示任何错误。< / p>

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