繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> 权限树中Checkbox的操作[Asp.Net2.0]

权限树中Checkbox的操作[Asp.Net2.0]

2007-09-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介: 这里使用ASP.net2.0的TreeView控件结合JavaScript实现权限树的部分功能。   假设权限树中有如下三条规则:   1、该节点可以访问,则他的父节点也必能访问;   2、该节点可以访问,则他的子节点也都能访问...
关键字:Checkbox 权限 2.0 Net Asp

 这里使用ASP.net2.0的TreeView控件结合JavaScript实现权限树的部分功能。

  假设权限树中有如下三条规则:

  1、该节点可以访问,则他的父节点也必能访问;

  2、该节点可以访问,则他的子节点也都能访问;

  3、该节点不可访问,则他的子节点也不能访问。

代码如下:

//获取元素指定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

{

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

{

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);

}

}

然后在page_load事件中将TreeView与js事件绑定上:

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

责任编辑:admin
相关文章