• 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,收起!

  • 相关阅读:
    前端面试
    (知乎)我想问一下PHP的学习路线图
    sublime text3如何安装bootstrap的插件
    php项目开发经验-2个月学习php经历
    基于链接的基本排序算法原理
    焦大:特征权重的处理与最终排名(中)
    焦大:特征权重的处理与最终排名(下)
    如何分析和监测竞争对手网站的seo数据
    没收录的页面是否会传递权重
    想学习SEO可以看哪些书籍
  • 原文地址:https://www.cnblogs.com/shen119/p/3291434.html
Copyright © 2020-2023  润新知