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

Reading number is top 10 articles
动态网页技术PHP语法学习笔记_php资料_编程技术
Asp.Net发送电子邮件程序_[Asp.Net教程]
如何识别真实和自动创建的索引?_[SQL,Server教程]
详细学习动态网页制作PHP技术的正则表达式_[PHP教程]
c#数据结构中的基本概念和术语
新增功能,(SQL,Server,2008,R2)_mssql学习_编程技术
当ASP.NET撞上JSF之构建应用程序的异同_[Asp.Net教程]
C#中的PrintDialog组件的应用实例
XML学习笔记(三)进阶篇_[XML教程]
C#+ASP.NET,2.0定制复合组件之基础篇_[Asp.Net教程]
Reading number is top 10 pictures
宝贝系列
NeedWallpaper7
NeedWallpaper3
The money of more than 100 countries and regions2
姑娘手慢了,已经走光了
The other a successor of sora aoi
Household design comfortable contracted
最2B的公司制度
中国女孩大胆自拍,显露完美身材2
漂亮脸蛋魔鬼身材1
Download software ranking
致我们终将逝去的青春
The Bermuda triangle3
中国结婚习俗实录
Boxer vs Yellow5
VC++6.0简体中文版
The hero
Love the forty days
Ashlynn Video4
C#程序员参考手册
Tram sex maniac 2 (H) rar bag12
delv published in(发表于) 2014/1/10 6:23:52 Edit(编辑)
asp.net,2.0,权限树的控制_[Asp.Net教程]

asp.net,2.0,权限树的控制_[Asp.Net教程]

asp.net 2.0 权限树的控制_[Asp.Net教程]

























做权限的时候,主要实现如下功能
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.