我正在使用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。 任何帮助将不胜感激。 感谢。