zoukankan      html  css  js  c++  java
  • easyui-tree

    今天在用easyui 写一棵树,根据用户的所属部门来获取用户信息,结果出现了下面的问题:

    根据如图所示api提供的方法:

    我的代码是这样的

    $('#userTree').tree({
                checkbox: true,
                url: 'roleAction/getUserTreeByRole.do',
                onClick:function(node){
                alert('you click '+node.text);
                }
            });
    <font color="red">*</font><font size="2px">关联用户: </font>
    <ul id="userTree" ></ul>

    结果在任何一个浏览器中都无法得到想要的树,无奈下,尝试使用静态的方法来加载树,如下:

    $('#userTree').tree({
                data:[{text: 'Item1',state: 'closed',children: [{text: 'Item11'},{text: 'Item12'}]},{text: 'Item2'}]
            });

    结果得到了想要的树结构:

    既然传data的方式可以显示出树结构,于是我决定采用ajax的方式来向后台请求数据,再将json数据作为data传输给tree,代码如下:

    function initTree(){
       $.ajax({
                 type : "post",
                //dataType: "json", 
                url: "roleAction/getUserTreeByRole.do",
                contentType : "application/x-www-form-urlencoded",
                success: function(data){
                //为什么一定要加eval呢?
                treedata = eval("(" + data + ")");
                   $('#userTree').tree({
                        data: treedata
                    });
                            
                         }
             });
    
    }

    后台给另一个假的数据来模拟,代码如下:

    /**
         * 获取用户树
         * 
         * @return
         * @throws Exception 
         */
        @ResponseBody
        @RequestMapping("/getUserTreeByRole")
        public String getUserTreeByRole(HttpServletRequest request,
                HttpServletResponse response) throws Exception {
            String  result= "[{text: 'Item1',state: 'closed',children: [{text: 'Item11'},{text: 'Item12'}]},{text: 'Item2'}]";
            response.setCharacterEncoding("utf-8");
            response.getWriter().write(result);
            return null;
        }

    在页面加载的时候,调用inittree()方法,结果也可以成功的显示上图显示的树结构,问题解决了,但是疑惑还存在:

    1)为什么第一种api中提到的方法无法加载树结构?

    2)在这个过程中,如果没有用eval()方法,也无法得到想要的结果,那么此处为什么一定要用到eval方法呢?

    web开发过程中的问题总结
  • 相关阅读:
    Vue 学习笔记之 —— 组件(踩了个坑)
    Vue 学习笔记之 —— 表单输入绑定
    js cookie
    python中线程、进程和协程的区别
    设计模式
    Mysql从入门到精通整理
    如何处理缓存失效、缓存穿透、缓存并发等问题
    mysql 查询当天、本周,本月,上一个月的数据
    Mysql分表和分区的区别、分库分表介绍与区别(转)
    mysql数据库死锁的产生原因及解决办法
  • 原文地址:https://www.cnblogs.com/muwanqing/p/4831575.html
Copyright © 2011-2022 走看看