zoukankan      html  css  js  c++  java
  • extjs 一个可以把数据建成树形的方法

    makeTreeData:function(root){
                        var me=this,recordName=this.record,data=[],node,length,i ;
                        function getTree(records,id){
                            var c=[];
                            Ext.Array.forEach(records,function(item,index,array){
                                if(item["ParentId"]==id){
                                    item[me.root]=getTree(records,item["TemplateId"]);
                                    c.push(item);
                                }
                            });
                            return c;
                        }


                        data=root;
                        for(i=0;i<data.length;i++){
                           // if(me.nodeDefault)
                                Ext.apply(data[i],{
                                    leaf:!data[i]["IsFolder"]
                                });
                        }
                         var recs=getTree(data, me.rootId);
                        return recs;
                    }

    这个方法的关键地方是getTree方法递归调用,根据parentId和id相同,最终形成一个用root【children】变量替代的树形数据,然后可以用于treegrid中

    有了这个方法我们平时测试静态数据时候可以很方便创建一个tree类型的store

     var treestore= Ext.create("Ext.data.TreeStore",{
                    model:"SuitModel"
                    ,root:{
                        name:"all"
                        ,Description:"root"
                        ,TemplateId:0
                        ,children:treeData
                        ,expand:true
                    }
                });

    此处的treeData就是上面的makeTreeData产生的。good,收起!

  • 相关阅读:
    Jzoj3756 【NOI2014】动物园
    Bzoj5088 HDU 6000 Wash
    Bzoj5088 HDU 6000 Wash
    Jzoj3486 道路改建
    Jzoj3486 道路改建
    合作网络
    工人的请愿书
    划分成回文串
    单向TSP
    旅行
  • 原文地址:https://www.cnblogs.com/shen119/p/3291434.html
Copyright © 2011-2022 走看看