zoukankan      html  css  js  c++  java
  • javascrip实现:若选中TreeView的父节点checkbox,则其子节点全部选中;子节点全部没选中,则父节点也会没选中。

        <script type="text/javascript">
            function public_GetParentByTagName(element, tagName) {
                var parent = element.parentNode;
                var upperTagName = tagName.toUpperCase();
                //如果这个元素还不是想要的tag就继续上溯
                while (parent && (parent.tagName.toUpperCase() != upperTagName)) {
                    parent = parent.parentNode ? parent.parentNode : parent.parentElement;
                }
                return parent;
            }
    
            //设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问 
            function setParentChecked(objNode) {
                var objParentDiv = public_GetParentByTagName(objNode, "div");
                if (objParentDiv == null || objParentDiv == "undefined") {
                    return;
                }
                var objID = objParentDiv.getAttribute("ID");
                objID = objID.substring(0, objID.indexOf("Nodes"));
                objID = objID + "CheckBox";
                var objParentCheckBox = document.getElementById(objID);
                if (objParentCheckBox == null || objParentCheckBox == "undefined") {
                    return;
                }
                if (objParentCheckBox.tagName != "INPUT" && objParentCheckBox.type == "checkbox")
                    return;
                objParentCheckBox.checked = true;
                setParentChecked(objParentCheckBox);
            }
    
            function setParentUnChecked(objNode) {
                var objParentDiv = public_GetParentByTagName(objNode, "div");
                if (objParentDiv == null || objParentDiv == "undefined") {
                    return;
                }
                var objID = objParentDiv.getAttribute("ID");
                objID = objID.substring(0, objID.indexOf("Nodes"));
                objID = objID + "CheckBox";
                var objParentCheckBox = document.getElementById(objID);
                if (objParentCheckBox == null || objParentCheckBox == "undefined") {
                    return;
                }
                if (objParentCheckBox.tagName != "INPUT" && objParentCheckBox.type == "checkbox")
                    return;
                objParentCheckBox.checked = GetChildUnChecked(objParentDiv);
                setParentUnChecked(objParentCheckBox);
            }
    
            function GetChildUnChecked(divID) {
                var objchild = divID.getElementsByTagName("INPUT");
                var count = objchild.length;
                for (var i = 0; i < objchild.length; i++) {
                    var tempObj = objchild[i];
                    if (tempObj.type == "checkbox") {
                        if (tempObj.checked == true) return true;
                    }
                }
                return false;
            }
            
            //设置节点的子节点cheched——该节点可以访问,则他的子节点也都能或不能访问 
            function setChildChecked(divID, objNode) {
                var objchild = divID.getElementsByTagName("INPUT"); ;
                var count = objchild.length;
                for (var i = 0; i < objchild.length; i++) {
                    var tempObj = objchild[i];
                    if (tempObj.type == "checkbox") {
                        tempObj.checked = objNode.checked;                    
                    }
                }
            }
            function CheckEvent() {
    
                var objNode = event.srcElement;
    
                if (objNode.tagName != "INPUT" || objNode.type != "checkbox")
                    return;
    
                if (objNode.checked == true) {
                    setParentChecked(objNode);
                    var objID = objNode.getAttribute("ID");
                    var objID = objID.substring(0, objID.indexOf("CheckBox"));
                    var objParentDiv = document.getElementById(objID + "Nodes");
                    if (objParentDiv != null && objParentDiv != "undefined") {
                        setChildChecked(objParentDiv, objNode);
                    }
                }
                else {
                    setParentUnChecked(objNode);
                    var objID = objNode.getAttribute("ID");
                    var objID = objID.substring(0, objID.indexOf("CheckBox"));
                    var objParentDiv = document.getElementById(objID + "Nodes");
                    if (objParentDiv != null && objParentDiv != "undefined") {
                        setChildChecked(objParentDiv, objNode);
                    }
                }
    
            }
        </script>


    this.tvlist.Attributes.Add("onclick", "CheckEvent()");

  • 相关阅读:
    深入理解MySQL开发性能优化.pptx
    公司mysql数据库设计与优化培训ppt
    weblogic 12c下jxls导出excel报错Could not initialize class org.apache.poi.xssf.usermodel.XSSFVMLDrawing
    智软科技医疗器械GSP监管软件通过多省市药监局检查
    论元数据和API管理工具
    sql server 2008空间释放
    论软件系统的设计与开发
    说说IT技术团队招聘那点事
    分布式系统基础设施概览
    分布式环境下rabbitmq发布与订阅端
  • 原文地址:https://www.cnblogs.com/caiyt/p/3208232.html
Copyright © 2011-2022 走看看