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开发过程中的问题总结
  • 相关阅读:
    Extjs combobox
    Extjs中全键盘操作,回车跳到下一单元格
    MVC调试时遇到的URL问题
    不用插件 让Firefox 支持网页翻译
    aspNet各种模块介绍
    IntelliJ IDEA 激活
    The method getTextContent() is undefined for the type Node 错误解决
    svn服务器地址变更,客户端更改服务器地址方法
    IntelliJ IDEA中TortoiseSVN修改服务器地址的方法
    修改MyEclipse中的SVN地址
  • 原文地址:https://www.cnblogs.com/muwanqing/p/4831575.html
Copyright © 2011-2022 走看看