谁研究过ext 的 columntree ?我在用的时候只能一次性的把dataurl指向一个json文件,从里面加载节点,有没有方法可以动态加载?网上找了很多代码,基本上都是这样的:
 
 var colTree = new Ext.tree.ColumnTree({
        width:552,
        autoHeight:true,
        rootVisible:false,
        autoScroll:true,        columns:[{
            header:'年份',
            width:100,
            dataIndex:'y_ear'
        },{
            header:'部门',
            width:200,
            dataIndex:'branch'
        },{
            header:'姓名',
            width:100,
            dataIndex:'name'
        },{
            header:'人次',
            width:100,
            dataIndex:'persons'
        },{
            header:'卷次',
            width:100,
            dataIndex:'volTimes'
        },{
            header:'档案号或文号',
            width:100,
            dataIndex:'docNumber'
        },{
            header:'档案名称',
            width:100,
            dataIndex:'docName'
        }],        loader: new Ext.tree.TreeLoader({
         dataUrl :'borrowStatAction.do?RequestPram=SEARCH_CHILD_BRANCH',
         baseParams:{lv:1},
            uiProviders:{
                'col': Ext.tree.ColumnNodeUI
            }
        })
    })  function gettree(node){   
  
   var par = node.id;   
   Ext.Ajax.request({   
    url: 'borrowStatAction.do?RequestPram=SEARCH_CHILD_BRANCH',   
    params: {lv:1},   
    method: 'GET',   
    success: function(result,request){  //成功返回   
     var myData = Ext.decode(result.responseText); // 得到服务器返回的json串,并用json.js解析过对象数组   
     for(var i=0;i<myData.root.length;i++ ){
            var cnode=new Ext.tree.AsyncTreeNode({   
                'y_ear':myData.root[i].y_ear,//显示内容为服务器返回id 父节点id   
                'branch':myData.root[i].branch,
                'name':myData.root[i].name,
                'persons':myData.root[i].persons,
                'volTimes':myData.root[i].volTimes,
                'docNumber':myData.root[i].docNumber,
                'docName':myData.root[i].docName,   
                'text':myData.root[i].y_ear,
                'uiProviders':{ 'col': Ext.tree.ColumnNodeUI  },   
                'leaf':myData.root[i].leaf,//是否为叶子节点,根据服务器返回内容决定是否为叶子节点   
                'iconCls':'task-folder',
                'children':[{//添加子节点,如果服务器返回tl[i].leaf为ture则孩子节点将无法显示   
                        'text':'loading',   
                        'iconCls': 'loading',   
                        'leaf':true  
                         }]   
            });
            cnode.on('expand',gettree);//定义当前节点展开时调用gettree方法,再次异步读取子节点   
            node.appendChild(cnode);//将当前节点添加为待展开节点子节点   
      }   
      //node.firstChild.remove();//删除当前节点第一个孩子节点(loading节点)   
    }  
    //failure: function2  // 失败   
   });     
 } 
用这种方法添加节点的时候,只认  text 属性,其他的属性无效

解决方案 »

  1.   

    用这种方法添加节点的时候,只把text 属性作为节点名称,没有columntree的效果,其他的属性没有在页面显示谁帮我解决下
      

  2.   

    你可以看看COLUMN的源码,在列树进行渲染的时候,可以进行再次扩展,需分别设置各个此结点各属性的值,我做过一个修改值的,很简单的
      

  3.   

    给你一个地址自己去琢磨吧:http://www.iteye.com/topic/212615