日期:2014-05-16  浏览次数:20804 次

Extjs tree节点无法选中,会自动跳到子节点 - Web 开发 / Ajax
我在用ext的treepanel写树的时候,当加载完子节点之后,无法选中该节点,如果点击,会自动自动选中
我写的这个树加上根节点也最多只能是三层,当点击根节点之后,根据一个url加载第二层的节点,如果点击的是第二层节点时,改变treeloader的dataurl,加载第三层,代码如下:
JScript code

var moduleLoadUrl = '<%= path%>/module/moduleGroup_treeList';  //treloader的dataurl
                //根节点
                var moduleMenuRoot = new Ext.tree.AsyncTreeNode({id: '0', 
                                                      text: '模块管理', 
                                                      qtip: '模块管理',
                                                      expanded : false 
                                                     });    
                
                var moduleTreeLoader = new Ext.tree.TreeLoader({
                    dataUrl: '<%= path%>/module/moduleGroup_treeList' //默认根的数据加载地址
                });
                //树
                var moduleMenuTree = new Ext.tree.TreePanel({
                    region: 'center',
                    id: 'moduleMenuTree',
                    autoScroll: true,
                    containerScroll : true,             
                    border: false,
                    root: moduleMenuRoot,    
                    loader: moduleTreeLoader    
                });    
                               //在数据加载之前,检查点击的是第几层数据,相对应的改变dataurl
                moduleMenuTree.on('beforeload', function(node) {
                    moduleLoadUrl = '<%= path%>/module/module_treeList?groupid=' + node.id;   //第三层数据的加载地址
                    if(node == moduleMenuRoot) { //如果是根节点, 则加载地址用加载第二层数据的地址
                        moduleLoadUrl = '<%= path%>/module/moduleGroup_treeList'; 
                    }
                    moduleMenuTree.loader.dataUrl = moduleLoadUrl; // 更改Loader的数据加载地址
                });


还有另外一棵树,没有这样改dataurl,一直用同一个url加载数据,就不会出现这问题,是不是我的动态更改dataurl的方法哪里有问题,我要怎么改

------解决方案--------------------
id在js中是不能重复的,重复的都会有问题。我以前做tab的时候就遇到过!