61,821
社区成员




……
myTreeView.Attributes.Add("oncheck", "NodeOnClick();");
……
<script language="javascript">
function NodeOnClick()
{
var node = document.getElementById("TreeViewAdmin").getTreeNode(event.treeNodeIndex);
var checked = node.getAttribute("Checked");
setCheck(node, checked, node.getNodeIndex());
document.getElementById("TreeViewAdmin").queueEvent("onclick", node.getNodeIndex());
}
function setCheck(node, Checked, ni)
{
var ChildNode = new Array();
ChildNode = node.getChildren();
if(parseInt(ChildNode.length) != 0)
{
for (var i = 0; i < ChildNode.length; i++)
{
var cNode = ChildNode[i];
if(cNode.getAttribute("checked") != Checked)
{
if(parseInt(cNode.getChildren().length) != 0)
{
setCheck(cNode, Checked, ni + "." + i);
}
cNode.setAttribute("checked", Checked);
document.getElementById("TreeViewAdmin").queueEvent('oncheck', ni + '.' + i);
}
}
}
}
</script>
<tvns:treenode Expanded="True" Checked="true" NodeData="1" ImageUrl="/EcoMgr/image/TreeView/folder.gif" ExpandedImageUrl="/EcoMgr/image/TreeView/folderopen.gif" Target="Main" CheckBox="True" ID="112">Top1
<tvns:treenode Expanded="True" Checked="true" NodeData="2" ImageUrl="/EcoMgr/image/TreeView/Page.gif" ExpandedImageUrl="/EcoMgr/image/TreeView/Page.gif" CheckBox="True" ID="120">Node1</tvns:treenode>
<tvns:treenode Expanded="True" Checked="true" NodeData="2" ImageUrl="/EcoMgr/image/TreeView/Page.gif" ExpandedImageUrl="/EcoMgr/image/TreeView/Page.gif" CheckBox="True" ID="113">Node2</tvns:treenode>
</tvns:treenode>
//
// doCheckboxClick()
//
function doCheckboxClick(el)
{
//el.checked = !el.checked;
el.checked = !el.getAttribute("checked");
var evt = createEventObject();
evt.treeNodeIndex = getNodeIndex(el);
g_nodeClicked = el;
_tvevtCheck.fire(evt);
}
//获取元素指定tagName的父元素
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);
}
//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
function setChildUnChecked(divID)
{
var objchild = divID.children;
var count = objchild.length;
for(var i=0;i<objchild.length;i++)
{
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{
tempObj.checked = false;
}
setChildUnChecked(tempObj);
}
}
//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
function setChildChecked(divID)
{
var objchild = divID.children;
var count = objchild.length;
for(var i=0;i<objchild.length;i++)
{
var tempObj = objchild[i];
if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
{
tempObj.checked = true;
}
setChildChecked(tempObj);
}
}
//触发事件
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")
{
return;
}
setChildChecked(objParentDiv);
}
else
{
var objID = objNode.getAttribute("ID");
var objID = objID.substring(0,objID.indexOf("CheckBox"));
var objParentDiv = document.getElementById(objID+"Nodes");
if(objParentDiv==null || objParentDiv == "undefined")
{
return;
}
setChildUnChecked(objParentDiv);
}
}