jQuery MiniUI

标题: 关于tree数据的问题 [打印本页]

作者: 1113822338    时间: 2017-8-27 22:17:05     标题: 关于tree数据的问题

我现在有5万条数据,其中有一个字段tag。 由于我只需要tag=1的数据和tag=1父级节点的数据。但是在后台查询tag=1的数据,然后去查询tag=1的所有父级节点,生成一棵树。但是这样子后台太耗时间了。
所以我干脆查询了所有的数据, 生成了下面这种结构的数据,其中有些节点是tag=1。

然后在前台根据这个方法过滤:
tree.filter(function(node){    if(node.tag="1") return true;});这样过滤显示tag=1的节点以及它们的所有父节点,效率还算可以。


然后想问下,前台返回所有的json数据时,有没有办法先在json过滤出tag=1的数据和它们的父节点数据,再把过滤后的数据加载到树形控件上。这样我就不用使用tree.filter这个方法了。  这个问题已经折腾了挺久,望请赐告!











[
    {
        id: "A",
        text: "ddd",
        expanded: false,
        children: [
            {
                id: "AA",
                text: "DataGrid",
                tag: "1"
            },
            {
                id: "AB",
                text: "Tree"
            },
            {
                id: "AC",
                text: "TreeGrid ",
                children: [
                    {
                        id: "AA",
                        text: "DataGrid"
                    },
                    {
                        id: "AB",
                        text: "Tree",
                        tag: "1"
                    },
                    {
                        id: "AC",
                        text: "TreeGrid "
                    }
                ]
            }
        ]
    },
    {
        id: "B",
        text: "B",
        expanded: false,
        children: [
            {
                id: "BA",
                text: "Panel"
            },
            {
                id: "BB",
                text: "Splitter"
            },
            {
                id: "BC",
                text: "Layout ",
                tag: "1"
            }
        ]
    },
    {
        id: "C",
        text: "C",
        expanded: false,
        children: [
            {
                id: "CA",
                text: "Pager"
            },
            {
                id: "CB",
                text: "Tabs",
                tag: "1"
            },
            {
                id: "CC",
                text: "NavBar"
            },
            {
                id: "CD",
                text: "Menu"
            }
        ]
    }
]



作者: dforce    时间: 2017-8-28 10:28:44

本帖最后由 dforce 于 2017-8-28 14:35 编辑

MiniUI只是前端控件,对数据没有控制,我们能控制的只是控件层面。你生成树之后我们可以给你过滤,但是生成树前的数据还是需要你自己处理的。
作者: 1113822338    时间: 2017-8-29 23:18:28

dforce 发表于 2017-8-28 10:28
MiniUI只是前端控件,对数据没有控制,我们能控制的只是控件层面。你生成树之后我们可以给你过滤,但是生成 ...

那个filter方法是怎么实现的嘛?望赐教,应该是有一个方法的
作者: dforce    时间: 2017-8-30 09:31:06

1113822338 发表于 2017-8-29 23:18
那个filter方法是怎么实现的嘛?望赐教,应该是有一个方法的

这是我们内部的方法,外部只需要使用tree.filter就可以。
你这里还是请后台处理数据,前端处理数据是不可靠的,性能和安全都是有问题的。




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