使用 primefaces 树从支持 bean 刷新父节点

Refresh parent node from backing bean with primefaces tree

目前我正在开发一个使用 primefaces 3.4.1 版本的项目,该版本不支持在树组件中拖放。所以我使用上下文菜单而不是拖放。

<p:tree id="treeHierarchy"
            value="#{hierarchyManagementBackingBean.root}" var="node"
            dynamic="true" selectionMode="single" cache="false"
            style="width:99%;" selection="#{hierarchyManagementBackingBean.selectedNode}">

            <p:treeNode id="idtreenode">
                <h:outputText value="#{node.name} (#{node.entityType})" />
            </p:treeNode>
</p:tree>


<p:contextMenu for="treeHierarchy">
            <p:menuitem value="Cut" actionListener="#{hierarchyManagementBackingBean.cutNode}"/>
            <p:menuitem value="Paste" actionListener="#{hierarchyManagementBackingBean.pasteNode}"/>
</p:contextMenu>

在支持 bean 中,

public void cutNode() {
    ChildNodeDTO select = (ChildNodeDTO) selectedNode.getData();
    selectedNode.getParent().getChildren().remove(selectedNode);
    selectedNode.setParent(null);
    selectedNode = null;
}

有没有办法从支持 bean 刷新父节点,以便可以在树上看到更改?

谢谢。

不,你只能更新完整的树afaik

其实我找到了实现这个功能的方法。

<h:form id="frmHierachiManage" styleClass="treeForm">
-- tree inside this form
</h:form>

然后在支持 bean 中,

RequestContext.getCurrentInstance().update("frmHierachiManage");

这更新了树视图。