<script type="text/javascript" language="javascript">
function setParentState(objNode) {
var objParentDiv = WebForm_GetParentByTagName(objNode, "div");
if (objParentDiv == null || objParentDiv == "undefined")
return;
var divID = objParentDiv.getAttribute("ID");
var prefix = divID.substring(0, divID.indexOf("Nodes"));
var parentID = prefix + "CheckBox";
var parentChk = document.getElementById(parentID);
if (parentChk == null || parentChk == "undefined")
return;
if (objNode.checked) {
parentChk.checked = true;
}
else {
if (isAllChildrenUnChecked(parentChk)) {
parentChk.checked = false;
}
}
setParentState(parentChk);
}
function setChildState(objNode)//設定子控制項狀態
{
var nodeID = objNode.getAttribute("ID"); //chkBox ID
var prefix = nodeID.substring(0, nodeID.indexOf("CheckBox")); //節點的首碼
var childrenDiv = document.getElementById(prefix + "Nodes");
if (childrenDiv == null || childrenDiv == "undefined")
return;
var childrenArray = childrenDiv.children; //取得所有子控制項
for (var i = 0; i < childrenArray.length; i++) {
var container = childrenArray[i]; //子控制項的容器
var chk = WebForm_GetElementByTagName(container, "input"); //尋找Check控制項,由於只有一個種Input控制項,就是CheckBox
chk.checked = objNode.checked;
setChildState(chk);
}
}
function isAllChildrenUnChecked(objChk) {
var objChkID = objChk.getAttribute("ID");
var prefix = objChkID.substring(0, objChkID.indexOf("CheckBox")); //節點的首碼
var childrenDiv = document.getElementById(prefix + "Nodes");
if (childrenDiv == null || childrenDiv == "undefined")
return;
var childrenArray = childrenDiv.children; //取得所有子控制項
for (var i = 0; i < childrenArray.length; i++) {
var container = childrenArray[i]; //子控制項的容器
var chk = WebForm_GetElementByTagName(container, "input"); //尋找Check控制項,由於只有一個種Input控制項,就是CheckBox
if (chk.checked)
return false;
}
return true;
}
//觸發事件
function HandleCheckEvent() {
var objNode = event.srcElement;
if (objNode.tagName != "INPUT" || objNode.type != "checkbox")
return;
//設定子Chk狀態
setChildState(objNode);
//設定父Chk狀態
setParentState(objNode);
}
</script>