Struts2 + zTree 异步加载树疑难问题,请教为什么出现undefined

发布于 2021-11-30 14:32:12 字数 8457 浏览 934 评论 4

@zTree 你好,想跟你请教个问题:

Struts2 +Json + Hibernate + Spring + zTree 异步加载疑难问题,请教为什么出现undefined

最近用Struts2 + zTree v3.5 异步加载问题

第一次加载数据显示都很正常。数据库有字段isParent子段。为true的都会有子节点嘛。

传入,和返回json数据都是正确的

var setting = {

            data: {

                simpleData: {

                    enable: true,//后台返回的就是个ArrayList                   

                    idKey: "mid",

                    pIdKey: "pid",

                    rootPId: 0

                }

            },

            async: {

                enable: true,

                url:"menuitemAction_showMenuitemsByPid.action",//点击树结构+时的加载。发现每次点击+加载。第一次不会调用这里代码

                autoParam:["mid=pid"]

            }

};

        $(document).ready(function(){

            $.post("menuitemAction_showMenuitemsByPid.action", { pid : 0 }, function(data){

                zNodes = data.menuitemList;

                //第一次加载初始化数据

                zTreeObj = $.fn.zTree.init($("#menuTree"), setting, zNodes);

            });

       });

加载数据都需要带pid这个参数。第一次我加载数据库初始化数据,能够展现出树。


每次当我点击+加载二级树时。已经返回了正确的json数据。二级菜单也显现出来了。但是不知道为什么

每个子节点总是多出个undefined。

将异步加载的数据给onAsyncSuccess处理。将返回的数据添加到当前点击的节点下面。

callback: {

                //beforeClick: beforeClick,

                //beforeAsync: beforeAsync,

                //onAsyncError: onAsyncError,

                onAsyncSuccess: onAsyncSuccess

            }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

巡山小妖精 2021-12-01 11:36:20

我也遇到同样(一模一样)的问题,请问你是怎么解决的呢?

蓝颜夕 2021-12-01 11:36:15

第一次的时候 判断在action里面判断一下就行了,没必要再次弄个ajax

谁的新欢旧爱 2021-12-01 08:06:26

$.post("menuitemAction_showMenuitemsByPid.action", { pid : 0 }, function(data){

                zNodes = data.menuitemList;//第一次调用这里的action

                zTreeObj = $.fn.zTree.init($("#menuTree"), setting, zNodes);

            });

 async: {

                enable: true,

                url:"menuitemAction_showMenuitemsByPid.action",//点击树结构+时的加载。发现每次点击+加载。第一次不会调用这里代码。第二次就开始调用这里的action

                autoParam:["mid=pid"]

我测试过按照我上面的写法。的

确 url:"menuitemAction_showMenuitemsByPid.action这里第一次没有调用。从第二次开始调用。

但是如果上述的代码改成$(document).ready(function(){
    treeObj = $.fn.zTree.init($("#menuTree"), setting);
}

这样就每次会调用url:"menuitemAction_showMenuitemsByPid.action

但是我第一次就需要传递参数。我不知道第一次进入该页面如何传参?所以我改

成$.post("menuitemAction_showMenuitemsByPid.action", { pid : 0 },传递了一个

参数。此时第一次树展现出来后 autoParam:["mid=pid"]这里就有值了。如果不改,第

一次进入页面pid根本没有值

你曾走过我的故事 2021-12-01 01:39:39

  url:"menuitemAction_showMenuitemsByPid.action",//点击树结构+时的加载。发现每次点击+加载。第一次不会调用这里代码

第一次 也要调用这个吧 我记得是的,你还在

 $.post("menuitemAction_showMenuitemsByPid.action", { pid : 0 }, 

这个没用吧 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文