jQuery MiniUI

标题: 后台返回数据怎么放到树形结构上? [打印本页]

作者: yx123456    时间: 2017-4-28 11:30:33     标题: 后台返回数据怎么放到树形结构上?

后台返回的数据有A,B,C三个字段,A是父节点,B是A的子节点,C又是B的子节点。后台返回的是一列
一列包含三个字段的数据?                                                                              


作者: dforce    时间: 2017-4-28 13:42:22

参考示例数据
http://www.miniui.com/demo/#src=tree/createtree.html
你的数据是什么格式就用什么方法。
作者: yx123456    时间: 2017-4-28 15:13:12

dforce 发表于 2017-4-28 13:42
参考示例数据
http://www.miniui.com/demo/#src=tree/createtree.html
你的数据是什么格式就用什么方法。 ...

返回来的数据是在一个data里面的,数据是这样的
A        B      C
{1年级 1班 小明}
{1年级 2班  小王}
{2年级  1班 小红}
{2年级  2班 小红}

作者: dforce    时间: 2017-4-28 15:22:25

yx123456 发表于 2017-4-28 15:13
返回来的数据是在一个data里面的,数据是这样的
A        B      C
{1年级 1班 小明}

请自行组织数据,树的数据需要数组,可以是树形,可以是列表,但是必须是这两种数据中的一种
http://www.miniui.com/demo/#src=tree/createtree.html
就如这示例里面展示的
1 var list = [                //列表数据,id,pid对应形成父子关系
                { id: "base", text: "Base" },            
                { id: "ajax", text: "Ajax", pid: "base" },
                { id: "json", text: "JSON", pid: "base" },
                { id: "date", text: "Date", pid: "base" },
                { id: "control", text: "Control", pid: "base" },
                { id: "forms", text: "Forms", pid: "base" },
                { id: "button", text: "Button", pid: "forms" },
                { id: "listbox", text: "ListBox", pid: "forms" },
                { id: "checkboxlist", text: "CheckBoxList", pid: "forms" },
                { id: "lists", text: "Lists" },
                { id: "datagrid", text: "DataGrid", pid: "lists" },
                { id: "tree", text: "Tree", pid: "lists" },
                { id: "treegrid", text: "TreeGrid ", pid: "lists" }
        ];


2   dataTree = [   //列表数据,children中带出子节点
            { id: "lists", text: "Lists", expanded: false,
                children: [
                                { id: "datagrid", text: "DataGrid" },
                                { id: "tree", text: "Tree" },
                                { id: "treegrid", text: "TreeGrid " }
                        ]
            },
                { id: "layouts", text: "Layouts", expanded: false,
                    children: [
                                { id: "panel", text: "Panel" },
                                { id: "splitter", text: "Splitter" },
                                { id: "layout", text: "Layout " }
                        ]
                },
                { id: "navigations", text: "Navigations", expanded: false,
                    children: [
                                { id: "pager", text: "Pager" },
                                { id: "tabs", text: "Tabs" },
                                { id: "navbar", text: "NavBar" },
                                { id: "menu", text: "Menu" }
                        ]
                }
        ];
作者: yx123456    时间: 2017-6-6 11:40:06

dforce 发表于 2017-4-28 15:22
请自行组织数据,树的数据需要数组,可以是树形,可以是列表,但是必须是这两种数据中的一种
http://www. ...

按照上面的list存放数据了,加载数据的时候报错  栈大小超过 ,我的数据就几条啊,这是为什么
作者: dforce    时间: 2017-6-6 13:04:41

yx123456 发表于 2017-6-6 11:40
按照上面的list存放数据了,加载数据的时候报错  栈大小超过 ,我的数据就几条啊,这是为什么 ...

请提供一下你的数据,我们分析看看。
作者: yx123456    时间: 2017-6-6 15:10:24

dforce 发表于 2017-6-6 13:04
请提供一下你的数据,我们分析看看。

["{id:JTLP,text:集团礼品}","{idYXJQ,text:实物礼品}","{id:NFDS,text:报纸,pid:SWDJ}","{id:ZQLP,text:政企聚类,pid:SWDJ}","{id:SWLH,text:商务领航,pid:SWDJ}","{id:FWSYF,text:服务使用费,pid:JTLP}","{id:CPSYF,text:产品使用费}","{id:null,text:null,pid:null}","{id:CPSYF,text:产品使用费,pid:CPSYF}","{id:YYDJ,text:营业兑奖,pid:SWDJ}"]
作者: jialiang    时间: 2017-6-6 16:10:26

yx123456 发表于 2017-6-6 15:10
["{id:JTLP,text:集团礼品}","{idYXJQ,text:实物礼品}","{id:NFDS,text:报纸,pid:SWDJ}","{id:ZQLP,tex ...

yx123456 发表于 2017-6-6 15:10
["{id:JTLP,text:集团礼品}","{idYXJQ,text:实物礼品}","{id:NFDS,text:报纸,pid:SWDJ}","{id:ZQLP,tex ...

[
        {id:"JTLP",text:"集团礼品"},
        {id:"YXJQ",text:"实物礼品"},
        {id:"NFDS",text:"报纸",pid:"SWDJ"},
        {id:"ZQLP",text:"政企聚类",pid:"SWDJ"},
        {id:"SWLH",text:"商务领航",pid:"SWDJ"},
        {id:"FWSYF",text:"服务使用费",pid:"JTLP"},
        {id:"CPSYF",text:"产品使用费"},
        {id:null,text:null,pid:null},
        {id:"CPSYF",text:"产品使用费",pid:"CPSYF"},
        {id:"YYDJ",text:"营业兑奖",pid:"SWDJ"}
]

首先你整体的数据结构是错的,你的每一项是字符串类型,正确的应该是对象;
其次你的"产品使用费"这个id重复了;
并且你的pid只有一项是匹配的,是你的数据不全,还是你的数据错误?

[attach]9322[/attach]这是改正你的数据后显示的效果

作者: yx123456    时间: 2017-6-6 16:29:33

jialiang 发表于 2017-6-6 16:10
yx123456 发表于 2017-6-6 15:10
["{id:JTLP,text:集团礼品}","{idYXJQ,text:实物礼品}","{id:NFDS,text: ...

如果是josn对象转成数组的话可不可以显示出来
作者: jialiang    时间: 2017-6-6 16:55:53

yx123456 发表于 2017-6-6 16:29
如果是josn对象转成数组的话可不可以显示出来

是你的数据结构不对,只要你的数据结构符合我们的要求,就是可以的
作者: yx123456    时间: 2017-6-9 15:46:08

jialiang 发表于 2017-6-6 16:55
是你的数据结构不对,只要你的数据结构符合我们的要求,就是可以的

树过滤怎么没有用?代码是按照示例写的啊
this.search = function() {
        var key = mini.get("key").getValue();
        var tree = mini.get("giftNameTree");
        if (key == "") {
            tree.clearFilter();
        } else {
            key = key.toLowerCase();               
            tree.filter(function (node) {
                var text = node.text ? node.text.toLowerCase() : "";
                if (text.indexOf(key) != -1) {
                    return true;
                }
            });
        }
    },

作者: felt    时间: 2017-6-9 16:09:34

yx123456 发表于 2017-6-9 15:46
树过滤怎么没有用?代码是按照示例写的啊
this.search = function() {
        var key = mini.get("key" ...

http://www.miniui.com/demo/#src=tree/filtertree.html
参考示例,可以正常过滤。
你检查一下你过滤的时候的key获取的对不对

作者: yx123456    时间: 2017-6-9 18:09:40

felt 发表于 2017-6-9 16:09
http://www.miniui.com/demo/#src=tree/filtertree.html
参考示例,可以正常过滤。
你检查一下你过滤的时 ...

key值是正常的,如果key有值,查不来数据,如果是空的查可以查所有,编码有关吗?
作者: yx123456    时间: 2017-6-9 18:12:17

yx123456 发表于 2017-6-9 18:09
key值是正常的,如果key有值,查不来数据,如果是空的查可以查所有,编码有关吗? ...

我的页面编码是UTF-8的
作者: yx123456    时间: 2017-6-9 18:20:28

yx123456 发表于 2017-6-9 18:12
我的页面编码是UTF-8的

找到问题了,解决了,但是搜索到的怎么不展开呢?
作者: felt    时间: 2017-6-10 12:08:42

yx123456 发表于 2017-6-9 18:20
找到问题了,解决了,但是搜索到的怎么不展开呢?

节点的展开状态保持和过滤前一致的。
你可以先全部展开再过滤tree.expandAll()
作者: yx123456    时间: 2017-6-13 10:23:26

felt 发表于 2017-6-10 12:08
节点的展开状态保持和过滤前一致的。
你可以先全部展开再过滤tree.expandAll() ...

有没有加载完成后自动选择某一个节点的?
作者: felt    时间: 2017-6-13 11:29:07

yx123456 发表于 2017-6-13 10:23
有没有加载完成后自动选择某一个节点的?

tree.selectNode(node);
可以调用选中节点方法,参数是节点id或节点对象。
作者: yx123456    时间: 2017-6-13 15:07:31

felt 发表于 2017-6-13 11:29
tree.selectNode(node);
可以调用选中节点方法,参数是节点id或节点对象。

树能不能限制打开第几级节点,比如说一个树有六级,一个input只能打开第四级,另一个能打开第五级
作者: felt    时间: 2017-6-13 16:27:45

yx123456 发表于 2017-6-13 15:07
树能不能限制打开第几级节点,比如说一个树有六级,一个input只能打开第四级,另一个能打开第五级 ...

tree有onbeforeexpand事件,节点展开前触发
可以判断节点的层级,来控制不让展开
tree.on("beforeexpand",function(e){
    var node=e.node;
    if(tree.getLevel(node)==5){
        e.cancel=true;
    }
})




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2