欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【Asp.Net2.0权限树中Checkbox的操作】,下面是详细的讲解!
Asp.Net2.0权限树中Checkbox的操作
这里使用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】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
