![](/Images/OutliningIndicators/ContractedBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<script>
![](/Images/OutliningIndicators/None.gif)
function getNodeFromNodes(objNodes)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
var objID=objNodes.getAttribute("ID");
objID=objID.substring(0,objID.indexOf("Nodes"))+"CheckBox";
var objNode=document.getElementById(objID);
return objNode;
}
function getNodesFromNode(objNode)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
var objID=objNode.getAttribute("ID");
objID=objID.substring(0,objID.indexOf("CheckBox"))+"Nodes";
var objNodes=document.getElementById(objID);
return objNodes;
}
![](/Images/OutliningIndicators/None.gif)
function getParentByTagName(element, tagName)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
var parent = element.parentNode;
var upperTagName = tagName.toUpperCase();
while (parent && (parent.tagName.toUpperCase() != upperTagName))
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
parent = parent.parentNode ? parent.parentNode : parent.parentElement;
}
return parent;
}
![](/Images/OutliningIndicators/None.gif)
function getChildCheckState(parentNode,type)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
var parentNodes
if(type==0)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
parentNodes=getNodesFromNode(parentNode)
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
parentNodes=parentNode
}
if(parentNodes==null || parentNodes == "undefined")
return true;
for(var i=0; i<parentNodes.children.length; i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var childNode = parentNodes.children[i];
if(childNode.tagName=="INPUT" && childNode.type=="checkbox")
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(childNode.checked==false)
return false;
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var returnState=getChildCheckState(childNode,1);
if(returnState==false)
return false;
}
}
return true;
}
![](/Images/OutliningIndicators/None.gif)
function checkParent(parentNode)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
if(getChildCheckState(parentNode,0)==true)
parentNode.checked=true
else
return;
var objParentNodes = getParentByTagName(parentNode,"div");
if(objParentNodes==null || objParentNodes == "undefined")
return;
var objParentNode=getNodeFromNodes(objParentNodes);
if(objParentNode==null || objParentNode == "undefined")
return;
if(objParentNode.tagName!="INPUT" && objParentNode.type == "checkbox")
return;
checkParent(objParentNode);
}
![](/Images/OutliningIndicators/None.gif)
function setParentNodeState(childNode,checkState)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
var objParentNodes = getParentByTagName(childNode,"div");
if(objParentNodes==null || objParentNodes == "undefined")
return;
var objParentNode = getNodeFromNodes(objParentNodes);
if(objParentNode==null || objParentNode == "undefined")
return;
if(objParentNode.tagName!="INPUT" && objParentNode.type == "checkbox")
return;
if(checkState==true)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
checkParent(objParentNode)
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
objParentNode.checked = false;
setParentNodeState(objParentNode,false);
}
}
function setChildNodeState(parentNodes,checkState)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
for(var i=0; i<parentNodes.children.length; i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
var childNode = parentNodes.children[i];
if(childNode.tagName=="INPUT" && childNode.type=="checkbox")
childNode.checked = checkState;
setChildNodeState(childNode, checkState);
}
}
function TransferCheck()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
var objNode = event.srcElement;
if(objNode==null || objNode=="undefined")
return;
if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
return;
var objNodes = getNodesFromNode(objNode);
if(objNodes==null || objNodes == "undefined")
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
setParentNodeState(objNode,objNode.checked);
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
setChildNodeState(objNodes,objNode.checked);
setParentNodeState(objNode,objNode.checked);
}
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/None.gif)
</script>
posted on
2006-05-10 11:37
Liangyy
阅读(
465)
评论()
编辑
收藏
举报