如何部分更新rich:tree节点?

时间:2013-11-18 18:12:28

标签: ajax jsf richfaces

我正在使用rich:tree在我的应用程序中显示大量数据。每个节点都有大量的HTML以及对重新排序的拖放支持。

我的问题是,当我将节点放入另一个节点时,似乎我必须重新渲染整个树。有没有办法可以选择要渲染的节点。由于重新排序仅影响某些节点,因此重新渲染整个树似乎是不必要的。

<rich:tree toggleType="ajax" var="node" id="segmentTree"
        nodeClass="rich-node-class" handleClass="abc" iconClass="cde"
        labelClass="node-lbl">
        <rich:treeModelRecursiveAdaptor
            roots="#{segmentationBean.treeAsList}" nodes="#{node.children}">
            <rich:treeNode id="treeNode" styleClass="treeNode" expanded="#{node.expanded}">

    <rich:dropTarget acceptedTypes="segments" dropValue="#{node}"
                        render="segmentTree"
                        dropListener="#{segmentationBean.onSegmentReorder}"
                        oncomplete="initializeTree();" />
                </a4j:outputPanel>
            </rich:treeNode>
        </rich:treeModelRecursiveAdaptor>
    </rich:tree>

更多信息: 如果我只是尝试渲染“treeNode”,我会看到一个NPE TreeRenderingContext:

public static TreeRenderingContext get(FacesContext context) {
        return (TreeRenderingContext) context.getAttributes().get(ATTRIBUTE_NAME);
    }

此方法为ATTRIBUTE_NAME =“org.richfaces.renderkit.TreeRenderingContext:ATTRIBUTE_NAME”返回null。 任何帮助将不胜感激。 感谢。

0 个答案:

没有答案