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

  • 相关阅读:
    jni中c代码调用java代码
    android 自动生成jni C语言头文件
    android jni下c文件怎么输出logcat
    android jni java类型与c语言类型互换
    约瑟夫环问题
    LeetCode面试题17.16 按摩师
    杂记
    书接上回,继续获取各链接内的小说内容
    正则表达式爬取小说各章节链接
    python爬虫学习心得:中国大学排名(附代码)
  • 原文地址:https://www.cnblogs.com/shen119/p/3291434.html
Copyright © 2011-2022 走看看