zoukankan      html  css  js  c++  java
  • Jquery EasyUI Combotree根据选中的值展开所有父节点

    Jquery EasyUI Combotree根据选中的值展开所有父节点 

    Jquery EasyUI Combotree 展开父节点,

    Jquery EasyUI Combotree根据子节点选中的值,展开前面所有父节点,

    Jquery EasyUI Combotree获取选中的值

    ================================

    ©Copyright 蕃薯耀 2018年5月7日

    http://www.cnblogs.com/fanshuyao/

    一、Combotree获取父节点的方法getParent,这其实是继承来自tree插件

    Js代码  
    1. Name        Parameter      Description  
    2. getParent   target         Get the parent node,   
    3.                            the target parameter indicate the node DOM object.  

    Tree获取父节点:

    Js代码  
    1. $("#treeId").tree("getParent", node.target);  

    Combotree获取父节点:

    Java代码  
    1. var treeObj = $("#combotreeId").combotree("tree");//先获取combotree的树对象  
    2. var parentNode = treeObj.tree("getParent", node.target);  

    二、Combotree获取选中的值

    Java代码  
    1. var treeObj = $("#combotreeId").combotree("tree");//先获取combotree的树对象  
    2. var nodesChecked = treeObj.tree("getChecked");//再通过树对象获取树所有选中的值,有可能有多个  

    三、展开父节点

    Js代码  
    1. $("#treeId").tree("expand", node.target);//node一般是父节点  

    四、根据叶子节点选中的值,展开所有父节点

    展开所有父节点的方法(递归展开父节点):

    Js代码  
    1. /** 
    2.  * 根据叶子节点展开所有父节点 
    3.  * @param treeObj 树对象,(combotree的树对象获取:var treeObj = comboObj.combotree("tree");) 
    4.  * @param node 叶子节点 
    5.  */  
    6. function expandParent(treeObj, node){  
    7.     var parentNode = treeObj.tree("getParent", node.target);  
    8.     if(parentNode != null && parentNode != "undefined"){  
    9.         treeObj.tree("expand", parentNode.target);  
    10.         expandParent(treeObj, parentNode);  
    11.     }  
    12. };  

    具体使用如下:

    Js代码  
    1. $("#cmm_code_id").combotree({  
    2.     multiple: true,  
    3.     required : true,  
    4.     checkbox : true,  
    5.     onlyLeafCheck : true,//只能叶子节点才能勾选  
    6.     url : "${pageContext.request.contextPath}/xxx",  
    7.     onBeforeSelect : function(node){  
    8.         $(this).tree("check", node.target);//控制点击文字时也能勾选  
    9.         return false;  
    10.     },  
    11.     onBeforeCheck : function(node, checked){  
    12.         if(checked){//如果是勾选操作,则把之前选中的节点清除(不勾选)  
    13.             var nodes = $(this).tree("getChecked");  
    14.             if(nodes.length > 0){  
    15.                 for(var i=0; i<nodes.length; i++){  
    16.                     $(this).tree("uncheck", nodes[i].target);  
    17.                 }  
    18.             }  
    19.         }  
    20.     },  
    21.     onLoadSuccess : function(node, data){  
    22.         var cmm_code_id_value = "${buildingNaming.cmm_code_id}";  
    23.         if(cmm_code_id_value != null && $.trim(cmm_code_id_value) != ""){  
    24.             var comboObj = $("#cmm_code_id");  
    25.             var treeObj = comboObj.combotree("tree");  
    26.                   
    27.             comboObj.combotree("setValue", cmm_code_id_value);  
    28.             var nodesChecked = treeObj.tree("getChecked");  
    29.             if(nodesChecked.length > 0){  
    30.                 for(var i=0; i<nodesChecked.length; i++){  
    31.                     expandParent(treeObj, nodesChecked[i]);  
    32.                 }  
    33.             }  
    34.         }  
    35.     }  
    36. });  

    (如果你觉得文章对你有帮助,欢迎捐赠,^_^,谢谢!) 

    ================================

    ©Copyright 蕃薯耀 2018年5月7日

    http://www.cnblogs.com/fanshuyao/

  • 相关阅读:
    关于添加“服务引用”和“添加引用”的一点总结
    nodejs+express工程 在npm install之后或使用npm install bootstrap命令安装bootstrap之后
    Mongo基础使用,以及在Express项目中使用Mongoose
    Express URL跳转(重定向)的实现
    node 开发web 登陆功能
    node js实战:带数据库,加密的注册登录表单
    nodejs 进阶:封装所有对数据库的常用操作
    nodejs进阶:密码加盐:随机盐值
    Nodejs进阶:密码加盐
    express 路由能力
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/9004016.html
Copyright © 2011-2022 走看看