使用js方式加载tree下拉树形列表

后台一次性加载tree所需要的数据:

        public ModelAndView queryEqu(HttpServletRequest request,HttpServletResponse response){
        try{
            String pid = request.getParameter("id");
            Map<String,Object> map = null;
            List<Map<String, Object>> trees = new ArrayList<Map<String, Object>>();
            if("0".equals(pid)){
                ConditionParse condParse = new ConditionParse();
                //condParse.addCondition("pid", "=", pid);
                condParse.addWhereStr();
                List<J20804_WzTypeBean>  ros  =j20804_WzTypeManager.queryJ20804_WzType(condParse);
                 for (J20804_WzTypeBean wz : ros) {
                        map = new HashMap<String,Object>();
                        map.put("id", wz.getId());
                        map.put("pId", wz.getPid());
                        map.put("name", wz.getName());
                        map.put("code", wz.getType());
                        if(0 == wz.getLeafValue()){
                            wz.setLeaf(true);
                        }
                        if(!wz.isLeaf()){
                            map.put("isParent", "true");
                            map.put("childs", queryEqus(wz.getId()));
                        }
                        trees.add(map);
                    }
            }
            
            String json = JsonHandler.buildJson(trees,false);
            writeJson(response, json);
        }catch (Exception e) {
            e.printStackTrace();
            log.error("J1042_ZBRKGLController中queryEqu异常:"+e.toString());

        }
        return null;
    }


    private Object queryEqus(String id) {
        Map<String,Object> map = null;
        List<Map<String, Object>> trees = new ArrayList<Map<String, Object>>();
        ConditionParse condParse = new ConditionParse();
        condParse.addCondition("pid", "=", id);
        condParse.addWhereStr();
        List<J20804_WzTypeBean>  ros  =j20804_WzTypeManager.queryJ20804_WzType(condParse);
         for (J20804_WzTypeBean wz : ros) {
                map = new HashMap<String,Object>();
                map.put("id", wz.getId());
                map.put("pId", wz.getPid());
                map.put("name", wz.getName());
                map.put("code", wz.getType());
                if(0 == wz.getLeafValue()){
                    wz.setLeaf(true);
                }
                if(!wz.isLeaf()){
                    map.put("isParent", "true");
                    map.put("childs", queryEqus(wz.getId()));
                }
                trees.add(map);
            }
        return trees;
    }

 

简单的js加载

html :
    <div class="zTreeDemoBackground left">
        <input id="wzType" type="text" readonly value="${map.code}" name="wzType"  οnclick="showMenu()"  class="m-wrap span10"/>
    </div>
    <div id="menuContent" class="menuContent" style="display:none;position:absolute;height:300px; min-width:163px; background-color:white;border:1px solid;overflow-y:auto;overflow-x:auto;top:10px;">
        <ul id="treeDemo" class="ztree" ></ul>
    </div>

js :
    $(document).ready(function(){
        loadData();
    });
 
    function loadData(){
     $.ajax({
         url:'wzStorageController.do?method=queryEqu',
         type:'POST',
         data:{id:"0"},
         dataType:'json',
         success:function(data) {
             zNodes = data;
             alert(JSON.stringify(zNodes));
             $.fn.zTree.init($("#treeDemo"), setting, zNodes);
         }
     });
     }
 
    var setting = {
            view: {
                dblClickExpand: false
            },
            data: {
                simpleData: {
                    enable: true
                }
            },
            callback: {
                beforeClick: beforeClick,
                onClick: onClick
            }
        };

        function beforeClick(treeId, treeNode) {
            var check = (treeNode && !treeNode.isParent);
            if (!check) showAlert("info", "请选择详细物资");
            return check;
        }

        function onClick(e, treeId, treeNode) {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
            nodes = zTree.getSelectedNodes(),
            v = "";
            nodes.sort(function compare(a,b){return a.id-b.id;});
            for (var i=0, l=nodes.length; i<l; i++) {
                v += nodes[i].code + ",";
            }
            if (v.length > 0 ) v = v.substring(0, v.length-1);
                var cityObj = $("#wzType");
                cityObj.attr("value", v);
            }

        function showMenu() {
            $("#menuContent").css({left:"300px", top:"50px"}).slideDown("fast");
            $("body").bind("mousedown", onBodyDown);
        }
        function hideMenu() {
            $("#menuContent").fadeOut("fast");
            $("body").unbind("mousedown", onBodyDown);
        }
        function onBodyDown(event) {
            if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
            hideMenu();
            }
        }
 

 后台:

    /**
     *
      * <p>Description:物资入库树形菜单<p>
      * @version  2017年6月26日
      * @modifier
      * @modifiDate
      * <p>modifiContent:<p>
      * @param request
      * @param response
      * @return
     */
    public ModelAndView queryEqu(HttpServletRequest request,HttpServletResponse response){
        try{
            String pid = request.getParameter("id");
            Map<String,Object> map = null;
            List<Map<String, Object>> trees = new ArrayList<Map<String, Object>>();
            if("0".equals(pid)){
                ConditionParse condParse = new ConditionParse();
                condParse.addWhereStr();
                List<J20804_WzTypeBean>  ros  =j20804_WzTypeManager.queryJ20804_WzType(condParse);
                 for (J20804_WzTypeBean wz : ros) {
                        map = new HashMap<String,Object>();
                        map.put("id", wz.getId());
                        map.put("pId", wz.getPid());
                        map.put("name", wz.getName());
                        map.put("code", wz.getType());
                        if(0 == wz.getLeafValue()){
                            wz.setLeaf(true);
                        }
                        if(!wz.isLeaf()){
                            map.put("isParent", "true");
                            
                        }
                        trees.add(map);
                    }
            }
            
            String json = JsonHandler.buildJson(trees,false);
            writeJson(response, json);
        }catch (Exception e) {
            e.printStackTrace();
            log.error("J1042_ZBRKGLController中queryEqu异常:"+e.toString());

        }
        return null;
    }

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值