jQuery MiniUI

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

懒加载树的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2014-10-23 17:30:36 |只看该作者 |倒序浏览
在懒加载树的例子中,加载使用的数据在url="../data/TreeService.aspx?method=LoadNodes"。但是我现在传数据使用的函数是
function tree1_Load() {
    //加载数据
    $.page.ajax($.page.getAjaxSettings({
        serviceType: "XXXX",
        serviceName: "XXXX",
        methodName: "XXXX",
        data: {
            ticket: $.page.ticket || ""
            , cateCode: cateCode
        }
        , success: function (resultData) {
            var tree = mini.get("tree1");
            var node = tree.getSelectedNode();
            if (node) {
                tree.loadNode(node);
            } else {
                tree.loadList(resultData);
            }
        }
    }));
};
当调用tree1_Load() 实现了全部不打开的效果,然后点击了+号直接出现错误提示json is error。
如果再次调用 tree1_Load时,给全局变量cateCode赋值就会返回cateCode值之下的子节点的数据。
获得的数据为都在resultData中,那么我怎么才能实现懒加载?

Rank: 8Rank: 8

沙发
发表于 2014-10-24 09:30:41 |只看该作者
懒加载树参考我们示例的后台方法

Rank: 2

板凳
发表于 2014-10-24 09:37:00 |只看该作者
本帖最后由 ft59596 于 2014-10-24 09:41 编辑
felt 发表于 2014-10-24 09:30
懒加载树参考我们示例的后台方法


但是我不想用url的方式,能用其他的方法么,就像上面说的,试用一个tree1_Load()函数获取数据,数据在数组resultData里。
还想问一个问题,json is error 是什么错误?

感觉在执行onBeforeTreeLoad之后,还执行了一个什么函数,然后调用了后台的方法,之后获得了数据,在通过一个函数绑定在该节点上。
现在的问题的是,执行onBeforeTreeLoad之后又执行了什么函数,我只要在这个函数中执行tree1_Load()函数或者替换掉那个函数。再在绑定该节点数据的时候,把数据赋值上去,不就能够使用了么。

Rank: 8Rank: 8

地板
发表于 2014-10-24 10:25:39 |只看该作者
ft59596 发表于 2014-10-24 09:37
但是我不想用url的方式,能用其他的方法么,就像上面说的,试用一个tree1_Load()函数获取数据,数据在数 ...

不用url自己通过方式去获取数据再新增到tree节点中去的话,需要监听beforeload吧默认的去访问后台方法禁止掉,然后自己调用节点展开事件,处理后台交互获取节点子节点,然后插入到该节点下,否则会自动去访问后台,如果没url,就会报json is error

tree如何判断需要懒加载:
http://miniui.com/bbs/forum.php? ... 2%E5%8A%A0%E8%BD%BD
看下这个帖子

Rank: 2

5#
发表于 2014-10-27 09:15:37 |只看该作者
factory 发表于 2014-10-24 10:25
不用url自己通过方式去获取数据再新增到tree节点中去的话,需要监听beforeload吧默认的去访问后台方法禁止 ...

在beforeload中,哪个方法是访问后台的? asyncLoad属性的话,是每个节点加上才有效的把?怎么才能在beforeload事件中静止访问后台?还有就是怎么给子节点添加数据,但是保证其他节点没有出事。

Rank: 8Rank: 8

6#
发表于 2014-10-27 10:47:27 |只看该作者
ft59596 发表于 2014-10-27 09:15
在beforeload中,哪个方法是访问后台的? asyncLoad属性的话,是每个节点加上才有效的把?怎么才能在befo ...

1 beforeload事件里e.cancel=true就能阻止
2 asyncLoad属性需要加到节点数据上

Archiver|普加软件

GMT+8, 2024-7-1 18:44 , Processed in 1.027889 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部