zTree的使用,向后台传值和获取值选中

    

首先引入zTree的css和js

html:

<div class="row">
                    <label class="col-sm-4 control-label"
                           style="text-align: right; margin-top:5px;padding-left: 10px;padding-right: 10px">选择产品:</label>
                    <div class="formControls col-xs-8 col-sm-7">
                        <ul id="funcTree" class="ztree"></ul>
                    </div>
                </div>

js配置:

var funcSetting = {
        async:{
            enable:true,
            dataType:"json",
            url:"/it/orderManage/getTrainList1?level="+$("#level").val()+""  //异步获取数据
        },
        view: {
            dblClickExpand: false,
            showLine: true,
            selectedMulti: false
        },
        data: {
            key:{
                name:"TITLE"    //显示返回数据的名字
            },
            simpleData: {
                enable:true,
                idKey: "TID",   //id
                pIdKey: "PID",    //父id
                rootPID:0     //根id
            }
        },
        check:{
            enable:true,
            chkboxType:{ "Y": "ps", "N": "s" }
        },
        callback: {
            onAsyncSuccess:function(event, treeId, treeNode, msg) {//数据获取成功后执行
                funcTreeObj.expandAll(true);  //设置所有为展开状态
                //使范户籍数据存在id的有选中状态
                var allNodes = funcTreeObj.getNodesByFilter(function(onenode){//这是一个自循环函数,会自动将所有节点遍历一遍,返回符合条件的节点
                    return (node.indexOf(onenode.TID) != -1);   //node为后台传来的值字符串,如果节点中的id存在我传的值,则把该节点选出
                });
                //循环选出的需要选中的节点
                for(var i=0; i<allNodes.length; i++) {
                    funcTreeObj.checkNode(allNodes[i], true, false);  //传入节点,使其选中
                }
            }                                                                                                                                                
        }
    };
     funcTreeObj = $.fn.zTree.init($("#funcTree"), funcSetting, null);  //初始化ztree

js提交时向后台传值:

var checkedObjs = funcTreeObj.getCheckedNodes(true);  //获取所有选中的节点
    if(checkedObjs.length!=11){
        layer.alert("必须选择10个产品");
        flag=false;
        return;
    }
    $("#form1 input[name='TID']").remove();
    for(var i=0;i<checkedObjs.length;i++) {
        var obj = checkedObjs[i];
        if(obj.TID) {
            $("#form1").append("<input type='hidden' name='TID' value='"+obj.TID+"' >");  //在form里增加input,将字符串数组传到后台
        }
    }

后台java接收:

//保存升级包
    @RequestMapping(value = "/saveLevelPackage", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
    @ResponseBody
    public String saveLevelPackage(@RequestParam HashMap<String, String> param,
                                   @RequestParam(value = "file") MultipartFile[] files,
                                   HttpServletRequest request,
                                   String T_PACKAGE_CODE, HttpServletRequest req) {
        String result;
        String[] TIDs = req.getParameterValues("TID"); //在request中用字符串数据接收
        try{
            if(T_PACKAGE_CODE!=null&&!T_PACKAGE_CODE.equals("")){
                orderManageService.removeLevelPackageTrain(param);
                orderManageService.updateLevelPackage(param);
            }else{
                orderManageService.saveLevelPackage(param);
            }
            if(TIDs!=null){
                for(int i=0;i<TIDs.length;i++){
                    if(TIDs[i].equals("1")){
                        continue;
                    }
                    param.put("TID",TIDs[i]);
                    orderManageService.addLevelPackageTrain(param);  //循环保存
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        result = "完成";
        return JSON.toJSONString(result);
    }

java取值时:

//获取升级包等级价格
    @RequestMapping(value = "/getTrainList1", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
    @ResponseBody
    public String getTrainList1(@RequestParam HashMap<String, String> param) {
        RetBase ret = new RetBase();
        List<Map<String, String>> list = new ArrayList<>();
        try {
            list = orderManageService.getTrainList1(param);
            Map<String, String> parent = new HashMap<>();
            parent.put("TITLE", "系统产品");  //因为关系中没有父类,手动加一个父类
            parent.put("PID", "0");
            parent.put("TID", "1");
            list.add(parent);
            ret.setSuccess(true);
            ret.setData(list);
        } catch (Exception e) {
            ret.setSuccess(false);
        }


        return JSON.toJSONString(list);  //直接将结果集用字符串输出
    }






猜你喜欢

转载自blog.csdn.net/lianzhang861/article/details/80272197
今日推荐