 
                    
                
         
    
    
    
   
   
   
   
   
   
    
    
        
        
 


 <script>
<script>

 function getNodeFromNodes(objNodes)
            function getNodeFromNodes(objNodes)

 
             {
{
 var objID=objNodes.getAttribute("ID");
                var objID=objNodes.getAttribute("ID");
 objID=objID.substring(0,objID.indexOf("Nodes"))+"CheckBox";
                objID=objID.substring(0,objID.indexOf("Nodes"))+"CheckBox";
 var objNode=document.getElementById(objID);
                var objNode=document.getElementById(objID);
 return objNode;
                return objNode;
 }
            }
 function getNodesFromNode(objNode)
            function getNodesFromNode(objNode)

 
             {
{
 var objID=objNode.getAttribute("ID");
                var objID=objNode.getAttribute("ID");
 objID=objID.substring(0,objID.indexOf("CheckBox"))+"Nodes";
                objID=objID.substring(0,objID.indexOf("CheckBox"))+"Nodes";
 var objNodes=document.getElementById(objID);
                var objNodes=document.getElementById(objID);
 return objNodes;
                return objNodes;
 }
            }

 function getParentByTagName(element, tagName)
            function getParentByTagName(element, tagName)

 
             {
{
 var parent = element.parentNode;
                var parent = element.parentNode;
 var upperTagName = tagName.toUpperCase();
                var upperTagName = tagName.toUpperCase();
 while (parent && (parent.tagName.toUpperCase() != upperTagName))
                while (parent && (parent.tagName.toUpperCase() != upperTagName))

 
                 {
{
 parent = parent.parentNode ? parent.parentNode : parent.parentElement;
                    parent = parent.parentNode ? parent.parentNode : parent.parentElement;
 }
                }
 return parent;
                return parent;
 }
            }

 function getChildCheckState(parentNode,type)
            function getChildCheckState(parentNode,type)

 
             {
{
 var parentNodes
                var parentNodes
 if(type==0)
                if(type==0)

 
                 {
{
 parentNodes=getNodesFromNode(parentNode)
                    parentNodes=getNodesFromNode(parentNode)
 }
                }
 else
                else

 
                 {
{
 parentNodes=parentNode
                    parentNodes=parentNode
 }
                }
 if(parentNodes==null || parentNodes == "undefined")
                if(parentNodes==null || parentNodes == "undefined")
 return true;
                    return true;
 for(var i=0; i<parentNodes.children.length; i++)
                for(var i=0; i<parentNodes.children.length; i++)

 
                 {
{
 var childNode = parentNodes.children[i];
                    var childNode = parentNodes.children[i];
 if(childNode.tagName=="INPUT" && childNode.type=="checkbox")
                    if(childNode.tagName=="INPUT" && childNode.type=="checkbox")                    

 
                     {
{
 if(childNode.checked==false)
                        if(childNode.checked==false)
 return false;
                            return false;
 }
                    }
 else
                    else

 
                     {
{
 var returnState=getChildCheckState(childNode,1);
                        var returnState=getChildCheckState(childNode,1);
 if(returnState==false)
                        if(returnState==false)
 return false;
                            return false;
 }
                    }
 }
                }
 return true;
                return true;                
 }
            }

 function checkParent(parentNode)
            function checkParent(parentNode)

 
             {
{
 if(getChildCheckState(parentNode,0)==true)
                if(getChildCheckState(parentNode,0)==true)
 parentNode.checked=true
                    parentNode.checked=true
 else
                else
 return;
                    return;
 var objParentNodes = getParentByTagName(parentNode,"div");
                var objParentNodes = getParentByTagName(parentNode,"div");                
 if(objParentNodes==null || objParentNodes == "undefined")
                if(objParentNodes==null || objParentNodes == "undefined")
 return;
                    return;
 var objParentNode=getNodeFromNodes(objParentNodes);
                var objParentNode=getNodeFromNodes(objParentNodes);
 if(objParentNode==null || objParentNode == "undefined")
                if(objParentNode==null || objParentNode == "undefined")
 return;
                    return;
 if(objParentNode.tagName!="INPUT" && objParentNode.type == "checkbox")
                if(objParentNode.tagName!="INPUT" && objParentNode.type == "checkbox")
 return;
                    return;
 checkParent(objParentNode);
                checkParent(objParentNode);
 }
            }

 function setParentNodeState(childNode,checkState)
            function setParentNodeState(childNode,checkState)

 
             {
{
 var objParentNodes = getParentByTagName(childNode,"div");
                var objParentNodes = getParentByTagName(childNode,"div");
 if(objParentNodes==null || objParentNodes == "undefined")
                if(objParentNodes==null || objParentNodes == "undefined")
 return;
                    return;
 var objParentNode = getNodeFromNodes(objParentNodes);
                var objParentNode = getNodeFromNodes(objParentNodes);
 if(objParentNode==null || objParentNode == "undefined")
                if(objParentNode==null || objParentNode == "undefined")
 return;
                    return;
 if(objParentNode.tagName!="INPUT" && objParentNode.type == "checkbox")
                if(objParentNode.tagName!="INPUT" && objParentNode.type == "checkbox")
 return;
                    return;
 if(checkState==true)
                if(checkState==true)

 
                 {
{
 checkParent(objParentNode)
                    checkParent(objParentNode)
 }
                }
 else
                else

 
                 {
{
 objParentNode.checked = false;
                    objParentNode.checked = false;
 setParentNodeState(objParentNode,false);
                    setParentNodeState(objParentNode,false);
 }
                }           
 }
            }
 function setChildNodeState(parentNodes,checkState)
            function setChildNodeState(parentNodes,checkState)

 
             {
{
 for(var i=0; i<parentNodes.children.length; i++)
                for(var i=0; i<parentNodes.children.length; i++)

 
                 {
{
 var childNode = parentNodes.children[i];
                    var childNode = parentNodes.children[i];
 if(childNode.tagName=="INPUT" && childNode.type=="checkbox")
                    if(childNode.tagName=="INPUT" && childNode.type=="checkbox")                    
 childNode.checked = checkState;
                        childNode.checked = checkState;                          
 setChildNodeState(childNode, checkState);
                    setChildNodeState(childNode, checkState);
 }
                }                    
 }
            }
 function TransferCheck()
            function TransferCheck()

 
             {
{     

 var objNode = event.srcElement;
                var objNode = event.srcElement; 
 if(objNode==null || objNode=="undefined")
                if(objNode==null || objNode=="undefined")
 return;
                    return;
 if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
                if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
 return;
                    return;
 
                               
 var objNodes = getNodesFromNode(objNode);
                var objNodes = getNodesFromNode(objNode);
 if(objNodes==null || objNodes == "undefined")
                if(objNodes==null || objNodes == "undefined")

 
                 {
{
 setParentNodeState(objNode,objNode.checked);
                    setParentNodeState(objNode,objNode.checked);
 }
                }
 else
                else

 
                 {
{
 setChildNodeState(objNodes,objNode.checked);
                    setChildNodeState(objNodes,objNode.checked);
 setParentNodeState(objNode,objNode.checked);
                    setParentNodeState(objNode,objNode.checked);
 }
                }

 }
            }

 </script>
    </script>   
        posted on 
2006-05-10 11:37 
Liangyy 
阅读(
472) 
评论() 
 
收藏 
举报