All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ASP.NET,MVC,框架_[Asp.Net教程]
Linux+MYSQL+Apache+PHP的安装_php资料_编程技术
初学网页制应知道HTML和XHTML的特点_[Html教程]
SQL,Server,2005升级的十个步骤详解_[SQL,Server教程]
Discuz!NT控件剖析,之,DataGrid(数据列表),[原创-,附源码]_[Asp.Net教程]
PHP5连接Mysql5的认证协议问题_php资料_编程技术
技巧汇总:C#编程的七个小技巧_.net资料_编程技术
在ASP.NET应用程序中捕捉身份验证状态的变化_.net资料_编程技术
数据库死锁导致站点访问故障解决方案_[SQL Server教程]
C#开发里List控件的使用方法介绍_.net资料_编程技术
Reading number is top 10 pictures
The real super beauty15
修电脑也有这么漂亮的美女
Forced sex girl living abroad1
Nine school beauty star those gossip matters
汪峰的梦想
Sora aoi be huged like a bear
两张抽象画
Men don't mature ten sign
Ashlynn Brooke a group sexy photo1
9.3阅兵全景图6-常规导弹梯队和核导弹梯队
Download software ranking
少妇苏霞全本
Unix video tutorial4
Unix video tutorial2
The king of fighters 97(Mobile phone games-apk)
Unix video tutorial3
豪门浪荡史
Take off clothes to survival
Unix video tutorial1
Sora aoi 120 minutes
Eclipse 4.2.2 For Win32
aaa published in(发表于) 2013/12/13 9:38:53 Edit(编辑)
asp.net,2.0,权限树的控制_.net资料_编程技术

asp.net,2.0,权限树的控制_.net资料_编程技术

asp.net 2.0 权限树的控制_.net资料_编程技术-你的首页-uuhomepage.com







做权限的时候,主要实现如下功能
1、该节点可以访问,则他的父节点也必能访问;
  2、该节点可以访问,则他的子节点也都能访问;
  3、该节点不可访问,则他的子节点也不能访问。
使用带CheckBox的数型结构能得到很好的用户体验,可是编程的难度也是有点增加,如果全部有服务端来完成,那点下刷下,肯定不行,只能使用javascript,javascript调试的时候郁闷的很,一个字类,还有郁闷的递归,麻烦
我以前是使用以下该方法
这种方法有个很大的问题,就是他客户端设置的CheckBox在服务器端是不能获取的,现在只能在Check的时候遍历树,并把Checked的值放在一个文本里,然后提交到服务器,然后服务器来解析1@2@这种字符
现在我使用的是asp.net2.0,使用的是以下的方法
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);
}
}这种方法最大的好处就是服务端能得javascript设置的Checked的值,不用没点下就全部把树遍利下,直接在服务端遍利一次就行了
//遍历子节点
public void GetChildNode(TreeNode Node)
{
foreach (TreeNode node in Node.ChildNodes)
{
if (node.Checked)
{
StrChecked += node.Value+"@";
}
GetChildNode(node);
}
}
}我照样能得到它的Check的值



























添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.