手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >Asp.Net2.0权限树中Checkbox的操作
Asp.Net2.0权限树中Checkbox的操作
摘要:这里使用asp.net2.0的TreeView控件结合JavaScript实现权限树的部分功能。假设权限树中有如下三条规则:1、该节点可以访...

这里使用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<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);

}

}

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

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

【Asp.Net2.0权限树中Checkbox的操作】相关文章:

asp.net post方法中参数取不出来的解决方法

asp.net(c#)有关 Session 操作的几个误区

ASP.NET 2.0 URL映射技巧

.Net消息队列的使用方法

asp.net下PageMethods使用技巧

ASP.Net生成一个简单的图片

vs 不显示行号的操作方法

Asp.net中的页面乱码的问题

Asp.net清空cache禁用页面缓存的方法

asp.net小孔子cms中的数据添加修改

精品推荐
分类导航