Extjs 直到单击';排序';标题按钮

Extjs 直到单击';排序';标题按钮,extjs,extjs4,Extjs,Extjs4,我调用root.appendChild()将两个子节点添加到treepanel根中,并调用root.expand()展开树,但直到我单击标题上的任何排序按钮,子节点才显示出来。是否需要设置任何属性以编程方式显示子节点 谢谢你的帮助 代码如下: tree.getRootNode().removeAll(); var root = tree.setRootNode({ PRTNUM:'root', id: 'treeR

我调用root.appendChild()将两个子节点添加到treepanel根中,并调用root.expand()展开树,但直到我单击标题上的任何排序按钮,子节点才显示出来。是否需要设置任何属性以编程方式显示子节点

谢谢你的帮助

代码如下:

        tree.getRootNode().removeAll();

        var root = tree.setRootNode({
            PRTNUM:'root',
            id: 'treeRoot',
            leaf: false
        });

        for (var i = 0; i < result.data.length; i++) {
            var rec = result.data[i];
            var node = root.appendChild({
                PRTNUM: rec.PRTNUM,
                DESC: rec.DESC,   
                icon: this.convertTypeToIcon(rec.TYPE),
                id: rec.PRTNUM,
                leaf: true

            });
        }


        root.expand();
tree.getRootNode().removeAll();
var root=tree.setRootNode({
PRTNUM:“根”,
id:'treeRoot',
叶:错
});
对于(var i=0;i
由于根节点最初没有子节点,因此它被标记为叶。 我发现以下方法适用于最初为叶子的父节点,您必须以编程方式添加节点:

parentNode.set("leaf", false);  //must be set to work properly
parentNode.appendChild(newChild);
parentNode.expand();

我发现在调用appendChild()修复树网格后添加以下行直到单击“排序”列按钮后才展开。谢谢

        root.expandChildren(true);

        root.sort(function() {});

根目录在配置中可见吗?是,根目录显示正确。谢谢。你是从空根开始的吗?意思是没有其他孩子?是的。appendChild()循环之前的removeAll()子节点。非常感谢。谢谢你的回复。我确实在setRootNode()时指定了leaf:false,但它仍然没有显示。顺便说一句,我发现如果我删除treegrid的存储,节点会显示但没有任何文本(只显示带有root及其子节点的图标)。如果我放回'store'属性,expand()将无法工作。我真的很感谢你的帮助。根目录、存储和可能的数据的配置出现了问题。您能发布最小的完整代码集吗?我想在append all子节点之后调用sort可以解决这个问题。谢谢你的帮助。我很高兴这对你有用,但这似乎不太合适。youtried root.expand而不是expandChildren?我刚刚尝试了root.expand()和root.expandChildren()都可以工作。树节点被成功追加,但它只需要通过用户单击或通过程序进行“排序”即可进行排序操作,从而触发一些“重画”以真正显示所有子节点。谢谢,祝你今天愉快。