asp.net1.1下权限配置系统从设计到实现(三)

转载 2006年06月09日 18:06:00
怎么用脚本实现TreeView的父子节点联动功能? 由于Firefox本身的特点,在实现时分别在IE下用脚本实现,在Firefox下用.cs代码实现。由于这两种浏览器兼容性实在不怎么好,艾!
       OK,废话少说,现在首先给出实现TreeView父子节点联动选种脚本方法:
function ChcekFuncNodes(e)
  {
            
var i=e.clickedNodeIndex;
            
var node=e.getTreeNode(i);
            
var NodeArray=node.getChildren();
            
if(NodeArray.length>0)
            {
                        
if(node.getAttribute("Checked"== true)
                        {
                                    
for(var i=0;i<NodeArray.length;i++)
                                    {
                                       CheckTreeNode(NodeArray[i],
true,false);
                                       GetSelectedFunctionPointID(NodeArray[i]);        
                                    }
                                    GetSelectedFunctionID(node);
                        }
                        
else
                        {
                                  
for(var i=0;i<NodeArray.length;i++)
                                    {
                                       CheckTreeNode(NodeArray[i],
false,false);        
                                    }
                         }
             }
             
else 
             {
                        
var ParentNode=node.getParent();
                        
if(ParentNode!=null)
                        {
                                    
if(node.getAttribute("Checked"== true)
                                    {        
                                              GetSelectedFunctionPointID(node);
                                              CheckTreeNode(ParentNode,
true,false);
                                              GetSelectedFunctionID(ParentNode);
                                    }
                                    
else
                                    {
                                            
if(AllChildTreeNodeSameCheck(ParentNode,false))
                                            {
                                                CheckTreeNode(ParentNode,
false,false);
                                            }
                                      }
                    }
                    
else
                    {
                        CheckTreeNode(node,
true,false);
                        GetSelectedFunctionID(node);
                    }
               }
      }
function CheckTreeNode(chilNode,isCheck,atuoSetChilTreeNode)
    {
 
            
if(chilNode!=null)
            { 
                        
//alert(chilNode);
                        chilNode.setAttribute('checked',isCheck);
                        
if(atuoSetChilTreeNode)
                        {
                        CheckChildTreeNode(chilNode,isCheck)
                        }
            }
   }
 function CheckChildTreeNode(Pnode,isCheck)
  {
            
if(Pnode!=null)
            {
                        
var arr=Pnode.getChildren();
                        
for(var i=0;i<arr.length;i++)
                        {
                         arr[i].setAttribute('checked',isCheck);
                        }
            }
  }
 function AllChildTreeNodeSameCheck(PareNode, value)
  {
         
if(PareNode!=null)
         {
                    
var chids=PareNode.getChildren();
                    
for(var i=0;i<chids.length;i++)
                    {
                                    
if(chids[i].getAttribute("Checked")!=value)
                                    {
                                      
return false;
                                    }
                      }
         }
          
return true;
  }
大家都知道,不用多讲,下面两个方法是纪录用户选中的FunctionID和FunctionPointID,通过隐藏控件传递给.cs文件使用,补充一下就是为什么我用document.getElementById('<%=hidenFunID.ClientID%>')而不用document.getElementById('hidenFunID')?原因是我的脚本是放在ascx文件中的(即UserControl中的)所以只能通过这种方式来找控件,否则就找不到哟!算是个小技巧吧 :)
 function GetSelectedFunctionID(nodes) 
     {
         
var hideFun = document.getElementById('<%=hidenFunID.ClientID%>');
         
var checkFun = hideFun.value;
         checkFun 
+= nodes.getAttribute("ID")+";";
         hideFun.value 
=checkFun;    
        
// alert(hideFun.value);
     }  
function GetSelectedFunctionPointID(nodes)
     {
         
var hideFunPoint = document.getElementById('<%=txtPointId.ClientID%>');
         
var checkFun = hideFunPoint.value;
         checkFun 
+= nodes.getAttribute("ID")+";";
         hideFunPoint.value 
=checkFun;    
         
//alert(hideFunPoint.value);
     }  
最后一步,让TreeView父子节点联动产生真正的效果,哈哈.................
private void Page_Load(object sender, System.EventArgs e)
        {
            
if(!
Page.IsPostBack )
            {
                 tvRoleFunctions.Attributes.Add("oncheck","ChcekFuncNodes(this)");
            }        
        }

下次写作预告:
怎么实现Select All  TreeView全部节点的功能?怎么实现展开和折叠自如?

http://jigee.cnblogs.com/archive/2006/06/09/421367.html#421589

asp.net1.1下权限配置系统从设计到实现(一)

这段时间一直在做一个做权限配置系统,做了这么久收获当然不少,于是有了与大家共同分享的想法。希望给想要了解这方面的朋友一点抛砖引玉的作用,本系统我准备以一系列文章来写,将教会你如何从设计到开发一个完整的...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年06月09日 18:05
  • 1039

asp.net1.1下权限配置系统从设计到实现(四)

继续上次的吧,本来还有点瞌睡:) (昨晚的德国VS哥队够精彩),还是坚持写完吧.今天说哈怎么实现Select All  TreeView全部节点的功能?怎么实现展开和折叠自如?请看:节点全部选中的实现...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年06月11日 18:20
  • 704

asp.net1.1下权限配置系统从设计到实现(二)

此权限系统的涉及到的数据表结构如下: 很简单,有图在此一目了然。一个角色对应多个功能,而每个功能又包含很多子功能,所以在设计的时候考虑要用到这5张表。在进行开发之前需要安装和配置TreeView控件,...
  • JOHNCOOLS
  • JOHNCOOLS
  • 2006年06月09日 18:06
  • 863

从需求到设计(记自已的一次开发经历)

闲来无聊,针对自己之前开发的一个项目中的一个案例,详细的说明一下从分析到设计再到最终完成的一个过程。希望对自己对正在寻求转变的人提供一点帮助。 过程是:分析->设计 迭代开发。 1 需求分...
  • HellDevil
  • HellDevil
  • 2016年07月27日 17:13
  • 1888

权限管理 (一) 设计思路分析和实现授权、认证

权限的认识 说起对权限的理解可以说是从肤浅到了解,现在也只是处在了解的水平,先来看这样一个通俗且真实的故事:我们都知道在有体制的公司或者机关单位,给人的体制化特别突出,通俗的说就是官大一级压死人,上...
  • lilongsheng1125
  • lilongsheng1125
  • 2013年11月24日 13:50
  • 4571

UML从需求到实现----用例

关于用例图的概念相信不用我去说了 .能看到这篇文章的都是知道用例图概念的人. UML 中最重要的是什么图呢 ?毫无疑问应该是用例图 ,用例是后期时序图 和实际开发的重要依据. 说明一...
  • lsh6688
  • lsh6688
  • 2011年03月10日 09:21
  • 6020

拒绝从入门到放弃_《Openstack 设计与实现》必读目录

目录目录 关于这本书 必看知识点 最后关于这本书《Openstack 设计与实现》是一本非常值得推荐的书,为数不多的 Openstack 开发向中文书籍中的精品。如果希望从事 Openstack 开发...
  • Jmilk
  • Jmilk
  • 2016年10月07日 17:04
  • 1624

数据权限的设计与实现

最近手上的web项目需要做权限控制,努力了解下,做如下笔记 1.权限分为菜单权限,操作权限,数据权限, 菜单权限即不同用户能够看到的菜单按钮不同,如系统管理员能看到系统管理,用户管理等菜单,而普通...
  • hchaoyangming
  • hchaoyangming
  • 2015年12月08日 19:25
  • 2092

【C语言】三个数从大到小输出

方法一: #include int main() { int a,b,c,t; printf("请输入三个数:\n"); scanf("%d%d%d",&a,&b,&c);  if(a...
  • wbq1480
  • wbq1480
  • 2016年05月26日 12:23
  • 1109

完整的权限管理系统,你有这样完整权限的设计吗?

很多人都知道以角色为基础的权限管理设计(RBAC),但是大部分人似懂非懂,不知道完整的权限管理系统都包括哪些内容。    在此以权限管理的使用场景来说明一下完整的权限管理内容。       一...
  • liangyixin19800304
  • liangyixin19800304
  • 2013年10月08日 12:07
  • 1527
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net1.1下权限配置系统从设计到实现(三)
举报原因:
原因补充:

(最多只允许输入30个字)