extjs treePanel.expandPath显示 2C

我想通过treePanel.expandPath展开到1001010000这一级,但现在用expandPath只能显示到1xxx这一级。请问是什么原因??

网上没有找到答案。都说treePanel.expandPath(/0000/1XXX/1001000000/1001010000,‘id’,function(){})是可以的。

我的tree是异步加载的。和这有关系吗??

2个回答

如果没有效果,那么expandPath肯定是只对已经加载的树有效果,异步的数据还没有下载下来,ext不会自动帮你加载其他未下载的数据的,你可以看这个函数的源代码,没有处理异步数据的。你可以自己添加callback,判断下是否有数据然后自己用同步的ajax加载数据

     expandPath: function(path, field, separator, callback, scope) {
        var me = this,
            current = me.getRootNode(),
            index = 1,
            view = me.getView(),
            keys,
            expander;

        field = field || me.getRootNode().idProperty;
        separator = separator || '/';

        if (Ext.isEmpty(path)) {
            Ext.callback(callback, scope || me, [false, null]);
            return;
        }

        keys = path.split(separator);
        if (current.get(field) != keys[1]) {
            // invalid root
            Ext.callback(callback, scope || me, [false, current]);
            return;
        }

        expander = function(){
            if (++index === keys.length) {
                Ext.callback(callback, scope || me, [true, current]);
                return;
            }
            var node = current.findChild(field, keys[index]);
            if (!node) {
                Ext.callback(callback, scope || me, [false, current]);
                return;
            }
            current = node;
            current.expand(false, expander);
        };
        current.expand(false, expander);
    }
ling00_ling
幽燕居 我的代码是这样的,用单击事件确发此方法: function queryJoinCourse(){ var path ='/0000/2XXX/2004000000'; treePanel.expandPath(path,'id') } 当只单击一次时,此treePanel.expandPath(path,'id')方法只展开了第一级,也就是父节点为0000的,其余的/2XXX/2004000000但不会执行。 但,若连续单击3次,则第一次单击则展开0000级,第二次单击,展开2xxx级,第三次单击则到了2004000000。 请问这种情况是什么原因?但,若我将treePanel.expandPath(path,'id')放到循环时里,它也是不会执行的。 不会写了,请问这种情况怎么解决,能给我写一下大概代码吗?
5 年多之前 回复
ling00_ling
幽燕居 我的代码是这样的,用单击事件确发此方法: function queryJoinCourse(){ var path ='/0000/2XXX/2004000000'; treePanel.expandPath(path,'id') } 当只单击一次时,此treePanel.expandPath(path,'id')方法只展开了第一级,也就是父节点为0000的,其余的/2XXX/2004000000但不会执行。 但,若连续单击3次,则第一次单击则展开0000级,第二次单击,展开2xxx级,第三次单击则到了2004000000。 请问这种情况是什么原因?但,若我将treePanel.expandPath(path,'id')放到循环时里,它也是不会执行的。 不会写了,请问这种情况怎么解决,能给我写一下大概代码吗?
5 年多之前 回复

我的代码是这样的,用单击事件确发此方法:
function queryJoinCourse(){
var path ='/0000/2XXX/2004000000';
treePanel.expandPath(path,'id')
}
当只单击一次时,此treePanel.expandPath(path,'id')方法只展开了第一级,也就是父节点为0000的,其余的/2XXX/2004000000但不会执行。

但,若连续单击3次,则第一次单击则展开0000级,第二次单击,展开2xxx级,第三次单击则到了2004000000。

请问这种情况是什么原因?但,若我将treePanel.expandPath(path,'id')放到循环时里,它也是不会执行的。

不会写了,请问这种情况怎么解决,能给我写一下大概代码吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐