AjaxPro部署成功

最近笔者在做项目时用到了权限树。因为想节省时间,就在网上Down些权限树的JS代码。
一下就是:
权限树
 1function public_GetParentByTagName(element, tagName) 
 2{
 3    var parent = element.parentNode;
 4    var upperTagName = tagName.toUpperCase();
 5    //如果这个元素还不是想要的tag就继续上溯
 6    while (parent && (parent.tagName.toUpperCase() != upperTagName)) 
 7    {
 8        parent = parent.parentNode ? parent.parentNode : parent.parentElement;
 9    }

10    return parent;
11}

12
13//设置节点的父节点Cheched——该节点可访问,则他的父节点也必能访问
14function setParentChecked(objNode)
15
16    var objParentDiv = public_GetParentByTagName(objNode,"div");
17    if(objParentDiv==null || objParentDiv == "undefined")
18    {
19        return;
20    }

21    var objID = objParentDiv.getAttribute("ID");
22    objID = objID.substring(0,objID.indexOf("Nodes"));
23    objID = objID+"CheckBox";
24    var objParentCheckBox = document.getElementById(objID);
25    if(objParentCheckBox==null || objParentCheckBox == "undefined")
26    {
27        return;
28    }
 
29    if(objParentCheckBox.tagName!="INPUT" && objParentCheckBox.type == "checkbox")
30    return
31    objParentCheckBox.checked = true;
32    setParentChecked(objParentCheckBox);
33}

34
35//设置节点的子节点uncheched——该节点不可访问,则他的子节点也不能访问
36function setChildUnChecked(divID)
37
38    var objchild = divID.children;
39    var count = objchild.length; 
40    for(var i=0;i<objchild.length;i++)
41    {
42        var tempObj = objchild[i];
43        if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
44        {
45            tempObj.checked = false;
46        }

47        setChildUnChecked(tempObj); 
48    }

49}

50
51//设置节点的子节点cheched——该节点可以访问,则他的子节点也都能访问
52function setChildChecked(divID)
53
54    var objchild = divID.children;
55    var count = objchild.length; 
56    for(var i=0;i<objchild.length;i++)
57    {
58        var tempObj = objchild[i];
59        if(tempObj.tagName=="INPUT" && tempObj.type == "checkbox")
60        {
61            tempObj.checked = true;
62        }

63        setChildChecked(tempObj); 
64    }

65}

66
67//触发事件
68function CheckEvent(evt)
69{
70    evt=evt?evt:(window.event?window.event:null);
71    var objNode = evt.srcElement=="undefine" ? evt.srcElement : evt.target; 
72    if(objNode.tagName!="INPUT" || objNode.type!="checkbox")
73    return;
74
75    if(objNode.checked==true)
76    {
77        setParentChecked(objNode);
78        var objID = objNode.getAttribute("ID");
79        var objID = objID.substring(0,objID.indexOf("CheckBox")); 
80        var objParentDiv = document.getElementById(objID+"Nodes");
81        if(objParentDiv==null || objParentDiv == "undefined")
82        {
83            return;
84        }
 
85        setChildChecked(objParentDiv);
86    }

87    else
88    {
89        var objID = objNode.getAttribute("ID");
90        var objID = objID.substring(0,objID.indexOf("CheckBox")); 
91        var objParentDiv = document.getElementById(objID+"Nodes");
92        if(objParentDiv==null || objParentDiv == "undefined")
93        {
94            return;
95        }
 
96        setChildUnChecked(objParentDiv);
97    }

98}

笔者主要改了一下第70行代码,可以支持IE,Firefox了。
调用(.cs)
this.TreeView1.Attributes.Add("onclick", "CheckEvent(event);");
仅共个人收藏之用.......

转载于:https://www.cnblogs.com/rainnight/archive/2007/09/28/908936.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值