关于java异步加载可多选的树形结构(需要导入layer和zTree)(可编辑)
来源:互联网 发布:js 数组 split 编辑:程序博客网 时间:2024/06/15 07:46
概要:(运用ZTREE)定义输入框,当点击输入框则弹出多选树形结构图。多选完毕后点击确认按钮,在输入框加载所选中的值。 (如为编辑修改操作,责在最后添加默认选中的方法即可)
(zTree api文档)(layer api文档)
定义输入框(如果需要传递的不是所显示的值则在下定义一个隐藏域即可)
》》》jsp <div> <label>发送区划:</label> <input placeholder="请选择发送区划" readonly id="sendArea" onclick="selectArea()" value="${sendAreaNames }" type="text" /> <input type="hidden" id="sendAreaId" value="${sendAreaIds }"> </div>
定义点击事件selectArea()
》》》script function selectArea(){ openPolUnitTree('选择发送区划'); };function openPolUnitTree(title){ layer.open({ type: 2, title: title, //弹框标题 fix: false, shadeClose: true, maxmin: false, area: ['20%', '70%'], //宽度,高度 content: '${base}/base/news/area_tree/' //后台请求的方法 }); return false;}
后台跳转方法
》》》java /** * 加载区划的树形图,传递到弹框中显示 */ @RequestMapping("/area_tree") public String area_tree( ModelMap model,HttpServletRequest request){ //得到需要显示的树形图放入到 List<TreeModel> areaTreeModels= new ArrayList<TreeModel>(); String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; model.addAttribute("areaTreeModels",JSON.toJSONString(areaService.getAreaTreeModels(areaTreeModels,basePath,true))); return "base/article/area_tree"; //弹框的jsp路径 }
定义页面弹框中的显示位子 和确认取消按钮
》》》jsp <div class="zTreeDemoBackground left"> <!--显示zTree--> <ul id="treeDemo" class="ztree"></ul> <div style="text-align: center;margin-bottom: 50px"> <button class="m-btn maincolor main-btn" onclick="sel()" type="button"><span>确认</span></button> <button class="m-btn maincolor main-btn" onclick="closes()" type="button"><span>取消</span></button> </div> </div>
加载区划的多选树形图
》》》script //定义需要传递的数组集合 var treeNames = new Array(); //名称的集合 var treeIds = new Array(); //id的集合 var setting = { check: { enable: true //设置可以勾选多个 }, view: { showIcon: showIconForTree }, data: { simpleData: { enable: true } }, callback: { onCheck: zTreeOnCheck //该方法为勾选中的时候将该值放入数组,取消勾选则剔除 } }; var zNodes=${areaTreeModels}; //通过el表达式取到JSON格式的树形图数据 var treeObj = $.fn.zTree.init($("#treeDemo"), setting,zNodes); //加载树形图 //显示子孙节点 var nodes = treeObj.getNodes(); //设置展开一级菜单 for (var i = 0; i < nodes.length; i++) { //设置节点展开 treeObj.expandNode(nodes[i], true, false, true); //设置第三个参数 如果是true展开子孙节点否则只展开一级节点 } function showIconForTree(treeId, treeNode) { return !treeNode.isParent; }; //不能选中节点,只能勾选 function zTreeOnCheck(event, treeId, treeNode) { //alert(treeNode.id + ", " + treeNode.name + "," + treeNode.checked+ ", " + treeId+","+event); //为防止选中的数据出错 设置当子节点被勾选的时候父节点不能被操作,但不影响该节点的其他子节点,当取消勾选也会主动取消父节点不可操作属性 //该方法第三个参数为是否影响其父所有父几点,第四个参数为其子节点(具体可查看官网api) treeObj.setChkDisabled(treeNode.getParentNode(), treeNode.checked,true ,false); //当勾选添加数据带数组中 if(treeNode.checked){ treeNames.push(treeNode.name); treeIds.push(treeNode.id); }else{ //相反从数组中剔除 treeNames.splice(jQuery.inArray(treeNode.name,treeNames),1); treeIds.splice(jQuery.inArray(treeNode.id,treeIds),1); } }; //点击取消关闭该弹框 function closes(){ var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 parent.layer.close(index); } //点击确认把选中的值显示到页面的input框中(有键的话加载到对应的隐藏域中) //确认按钮点击事件 function sel(){ var names = treeNames.join(","); //所有选中的集合数组转String var ids = treeIds.join(","); var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 parent.$("#sendArea").val(names); //加载到对应的input框中 parent.$("#sendAreaId").val(ids); if(parent.loadRole){ parent.loadRole(); } parent.layer.close(index); }
当需要有修改操作时,加上此方法在显示出多选树形图的时候默认勾选已有的内容
//*********************默认选中节点**************************************// function filter(node) { //查询节点 return ($.inArray(node.id, treeIds)!=-1); } var idss = parent.$("#sendAreaId").val(); //得到input框中的选中的数组的String类型的值 treeIds = idss.split(","); //转化成数组 treeNames = new Array(); var nodex = treeObj.getNodesByFilter(filter); // 查找节点集合 找到需要被勾选的数组 for(var j= 0 ; j< nodex.length;j++){ nodex[j].checked=true; //勾选 treeNames.push(nodex[j].name); } //*********************默认选中节点**************************************// //刷新 treeObj.refresh(); //最后需要刷新才会显示;
如有侵犯版权问题请及时和我取得联系,不足之处请大家指出。谢谢
阅读全文
1 0
- 关于java异步加载可多选的树形结构(需要导入layer和zTree)(可编辑)
- zTree异步加载树形菜单
- ZTree学习(二):异步加载树结构
- 关于ztree异步加载的问题
- JFinal中树形显示(ztree)和弹层(layer)结合事例
- Java zTree 的异步加载demo示例
- Java zTree 的异步加载demo示例
- Java zTree 的异步加载demo示例
- zTree实例(可增删编辑)
- jQuery树形菜单,使用zTree插件,异步加载 & 编辑功能&Check 共存
- ztree+dwr实现异步加载树形菜单
- jQuery+zTree加载树形结构菜单
- jQuery+zTree加载树形结构菜单
- jQuery+zTree加载树形结构菜单
- jQuery+zTree加载树形结构菜单
- jQuery+zTree加载树形结构菜单
- jQuery+zTree加载树形结构菜单
- java zTree异步加载实战
- HttpClient4.5.2 使用cookie保持会话——获取cookie之后如何传递它
- android studio gradle入门
- Vue.js 学习(8) -- v-model: 表单控件绑定
- TensorFlow 1.0 中改变的API集合
- String、StringBuffer与StringBuilder的区别--Java基础060
- 关于java异步加载可多选的树形结构(需要导入layer和zTree)(可编辑)
- MATLAB—A*解决八数码问题
- NodeJs框架
- 11 个重要的数据库设计规则
- 七大 阻塞队列
- Android DEX安全攻防战
- 蓝桥杯java第五届决赛第二题--六角幻方
- 阿里云搭建基于MatlabMPI的集群(九):一个基本的MatlabMPI程序
- Mybatis框架通用Dao中getSqlSession().selectOne()的应用