我现在遇到的问题是,目前的js只能实现两级tree代码见下/*
 * Ext JS Library 2.2.1
 * Copyright(c) 2006-2009, Ext JS, LLC.
 * [email protected]
 * 
 * http://extjs.com/license
 */
var getTreeNode = function(node)
    {
    
          Ext.Ajax.request({
url : 'extjstree.do',
method:'post',
success: function (result,request) {
var depts = Ext.decode(result.responseText);

for(var i=0;i<depts.length;i++)
{

nd = new Ext.tree.AsyncTreeNode({
id:depts[i].weekly,
text:depts[i].weekly,
leaf:depts[i].leaf,//是否为叶子节点,根据服务器返回内容决定是否为叶子节点        
    iconCls:depts[i].iconCls
//     uiProvider:depts[i].uiProvider
});
// nd.on('expand',getTreeNode);
node.appendChild(nd);
}

}
})
    }
       //异步加载根节点 
   var root=new Ext.tree.AsyncTreeNode({ 
       id:'1',
        text:'Tasks' 
                }); 
     //加载树
   var tree = new Ext.tree.ColumnTree({
        el:'tree-ct', 
width: 820,
        height: 400,
        rootVisible:false,
    animate:true,
        autoScroll:true,
        title: '个人周报',
       // renderTo: Ext.getBody(),
        
        columns:[{
            header:'周 期',
            width:200,
            dataIndex:'weekly'
        },{
            header:'周报作者',
            width:100,
            dataIndex:'user'
        },{
            header:'起、止时间',
            width:350,
            dataIndex:'time'
        },{
            header:'提交日期',
            width:150,
            dataIndex:'commitTime'
        }],        loader: new Ext.tree.TreeLoader({
   
            uiProviders:{
                'col': Ext.tree.ColumnNodeUI
            }
        })     
    });
Ext.onReady(function(){  
   //设置根节点 
   tree.setRootNode(root);      tree.on('beforeload', 
                function(node){   
                // alert(node.id);
                 tree.loader.dataUrl='extjstree.do?weekly='+node.id;    //定义子节点的Loader 
                
                 }); 
    tree.render();   
//    for(var i in tree.loader){
//    
//    alert("属性名称:"+i+",属性值:"+tree.loader[i]);
//    }    root.on('expand',getTreeNode);});现在我想完成多级tree怎么做?我疑惑在他的传的url怎么能动态的分配?或者动态传递节点id给js,然后通过js在条用url传递id,在通过id进行下个节点的查询?

解决方案 »

  1.   

    顶下自己~~~!会ext的朋友都来讨论下!!!!
      

  2.   


    loader: new Ext.tree.TreeLoader({
            dataUrl : 'ajax/treeNode.jsp',
            listeners : {
         beforeload : function(sel,node){
         sel.baseParams.p_id = node.id;
         }
         },
            baseParams : {
             p_id : '0'
            }
        })这是普通的树动态加载
    每次展开指定节点的时候,都把节点id传给后台,重新获取子目录
    所以你每次取文件夹的时候,只需要取这个节点的子目录就行了,不需要全部取完