jQuery MiniUI

 找回密码
 立即注册
查看: 3946|回复: 9
打印 上一主题 下一主题

Tree懒加载问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2015-6-3 13:42:58 |只看该作者 |倒序浏览
我的Tree是通过loaddata方法加载数据的,一开始我只加载了第一层节点,然后我想点节点前的加号的时候,再去查询数据,然后将返回的数据设置到当前节点的children里。下面是我的做法:   nTree.on("beforeexpand", function (e) {
            var nNode = e.node;
            if (nNode.IsLoad == false) {
               var nCDTable = TreeView.getChildrenData(nNode.Tag);
                var nChildren = TreeView.getTreeData(nCDTable);
                nNode.children = nChildren;
            }
        });

getChildrenData: function (pTag) {
        var nTDTable = [{ NodeText: "00101-开发部", ComID: "1", DepID: "2", IsLeaf: false }, { NodeText: "00102-销售部", ComID: "3", DepID: "4", IsLeaf: false}];
        return nTDTable;
    },
    getTreeData: function (pTreeTable) {
        var nTreeData = [];
        for (var i = 0; i < pTreeTable.length; i++) {
            var nRow = pTreeTable[i];
            var nNode = {};
            nNode.text = nRow["NodeText"];
            nNode.isLeaf = nRow["IsLeaf"];
            nNode.Tag = nRow;
            nNode.IsLoad = false;
            nTreeData.push(nNode);
        }
        return nTreeData;
    }





Rank: 8Rank: 8

沙发
发表于 2015-6-3 14:04:53 |只看该作者
有什么问题吗

Rank: 3Rank: 3

板凳
发表于 2015-6-3 15:10:20 |只看该作者
dforce 发表于 2015-6-3 14:04
有什么问题吗

这样做会出错,点击加号的时候会提示“json is error”

Rank: 8Rank: 8

地板
发表于 2015-6-3 15:26:39 |只看该作者
xchw0329 发表于 2015-6-3 15:10
这样做会出错,点击加号的时候会提示“json is error”

懒加载是去后台加载数据,点击展开的时候会根据这3个条件去判断
1.我们内部会判断你展开这个节点下,是否有子节点数据了,有的话,就不往后台发送信息
2.如果没有子节点,那么我们会判断该节点的asyncLoad属性是否为 true,默认为true,如果你后台设置了返回节点数据的该字段的值为false,那么该节点下没子节点,我们也不会往后台继续发信息
3.判断节点的isLeaf,如果为叶子节点,也不会产生发往后台信息的行为

Rank: 3Rank: 3

5#
发表于 2015-6-3 15:47:06 |只看该作者
dforce 发表于 2015-6-3 15:26
懒加载是去后台加载数据,点击展开的时候会根据这3个条件去判断
1.我们内部会判断你展开这个节点下,是否 ...

我说的懒加载跟你们的例子不一样,需不需要去后台加载数据我会自己判断,我现在需要的是,我数据查出来之后怎么把它加到我点击的这个节点上,让它能显示出来?

Rank: 8Rank: 8

6#
发表于 2015-6-3 16:17:29 |只看该作者
xchw0329 发表于 2015-6-3 15:47
我说的懒加载跟你们的例子不一样,需不需要去后台加载数据我会自己判断,我现在需要的是,我数据查出来之 ...

原始节点的 属性设置好,aysncLoad,isLeaf两个字段

Rank: 3Rank: 3

7#
发表于 2015-6-3 16:41:24 |只看该作者
本帖最后由 xchw0329 于 2015-6-3 16:42 编辑
dforce 发表于 2015-6-3 16:17
原始节点的 属性设置好,aysncLoad,isLeaf两个字段
设置了isLeaf=false,aysncLoad=false之后还是会报错,但是节点已经可以加载出来了,但是没有在原节点的下面
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

8#
发表于 2015-6-3 16:47:25 |只看该作者
xchw0329 发表于 2015-6-3 16:41
设置了isLeaf=false,aysncLoad=false之后还是会报错,但是节点已经可以加载出来了,但是没有在原节点的下面 ...

懒加载标准模式请参考我们懒加载的示例
点击+号我们默认的处理是判断节点的isLeaf和asyncload属性去加载属性
你节点这2个属性配置false,true,就不去会加载

Rank: 3Rank: 3

9#
发表于 2015-6-3 17:10:17 |只看该作者
dforce 发表于 2015-6-3 16:47
懒加载标准模式请参考我们懒加载的示例
点击+号我们默认的处理是判断节点的isLeaf和asyncload属性去加载 ...

我想出现加号,肯定要设置isLeaf=false啊,但是又不想后台自动加载,设置aysncload=false没用

Rank: 8Rank: 8

10#
发表于 2015-6-3 17:14:48 |只看该作者
xchw0329 发表于 2015-6-3 17:10
我想出现加号,肯定要设置isLeaf=false啊,但是又不想后台自动加载,设置aysncload=false没用 ...

设置了这两个点击+号不可能再去加载的

Archiver|普加软件

GMT+8, 2024-11-25 04:52 , Processed in 1.056603 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部