Easyui-树(Tree)

这里写图片描述
这个主要的拿到的json数组不是标准的tree的命名格式,然后实现重新转换
1.获取的数据样式

 var testdata=[
{"nodeId":"1001","parendId":"apple","nodeName":"水果"},
{"nodeId":"1002","parentId":"1001","nodeName":"苹果"},
{"nodeId":"1003","parentId":"1001","nodeName":"梨"},
{"nodeId":"1004","parentId":"1002","nodeName":"红富士"},
{"nodeId":"1005","parentId":"1002","nodeName":"花牛"},
{"nodeId":"1006","parentId":"1002","nodeName":"黄元帅"},
{"nodeId":"1007","parentId":"1002","nodeName":"澳洲青苹"},
{"nodeId":"1008","parentId":"1002","nodeName":"嘎啦果"},
{"nodeId":"1009","parentId":"1003","nodeName":"苹果梨"},
{"nodeId":"2000","parentId":"1003","nodeName":"酥梨"},
{"nodeId":"2001","parentId":"1003","nodeName":"雪花梨"},
{"nodeId":"2002","parentId":"1003","nodeName":"鸭梨"},
{"nodeId":"2003","parentId":"1003","nodeName":"香梨"},
{"nodeId":"2003","parentId":"1001","nodeName":"香蕉"},
{"nodeId":"2003","parentId":"1001","nodeName":"芒果"},
{"nodeId":"2003","parentId":"1001","nodeName":"猕猴桃"}
];

2.转换方法

 $("#tree_test").tree({
    data:testdata,
    loadFilter: function(rows){
        return convert(rows);
    },
    //点击事件
    onClick: function(node){
        alert(node.text);  // alert node text property when clicked
    }
});
    function convert(rows){
    function exists(rows, parentId){
        for(var i=0; i<rows.length; i++){
            if (rows[i].nodeId == parentId) return true;
        }
        return false;
    }

    var nodes = [];
    // get the top level nodes
    for(var i=0; i<rows.length; i++){
        var row = rows[i];
        if (!exists(rows, row.parentId)){
            nodes.push({
                id:row.nodeId,
                text:row.nodeName
            });
        }
    }

    var toDo = [];
    for(var i=0; i<nodes.length; i++){
        toDo.push(nodes[i]);
    }
    while(toDo.length){
        var node = toDo.shift();    // the parent node
        // get the children nodes
        for(var i=0; i<rows.length; i++){
            var row = rows[i];
            if (row.parentId == node.id){
                var child = {id:row.nodeId,text:row.nodeName};
                if (node.children){
                    node.children.push(child);
                } else {
                    node.children = [child];
                }
                toDo.push(child);
            }
        }
    }
    return nodes;
};

3.标准数据格式
这里写图片描述
数据格式:

var testdata2=
[{
    "id":1,
    "text":"Folder1",
    "iconCls":"icon-save",
    "children":[{
        "text":"File1",
        "checked":true
    },{
        "text":"Books",
        "state":"open",
        "attributes":{
            "url":"/demo/book/abc",
            "price":100
        },
        "children":[{
            "text":"PhotoShop",
            "checked":true
        },{
            "id": 8,
            "text":"Sub Bookds",
            "state":"closed"
        }]
    }]
},{
    "text":"Languages",
    "state":"closed",
    "children":[{
        "text":"Java"
    },{
        "text":"C#"
    }]
}];

js代码:

$("#tree_test2").tree({
    data:testdata2});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值