[转]权限树中Checkbox的操作[Asp.Net2.0]

转自:http://jeffamy.cnblogs.com/archive/2006/06/17/428387.html

原文如下:

这里使用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()");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269212.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java -XX:+PrintFlagsInitial该命令可以查看所有JVM参数启动的初始值

java -XX:PrintFlagsInitial 该命令可以查看所有JVM参数启动的初始值 [Global flags]intx ActiveProcessorCount -1 {product}uintx AdaptiveSizeDecrementScaleFactor 4 …

DVP 接口时钟配置错误导致的高温出图异常

我们sensor 在常温下出图正常&#xff1b; 但是在高温测试的时候&#xff0c;会出现花屏 继续升温画面就变为一个色&#xff0c;其实这个时候 sensor 计算的电压幅值已经饱和 将DVP 时钟改为 12MHZ 后OK&#xff0c; 软件处理是按照12MHZ 没有一点问题&#xff0c; 与客户确认也…

6.8

1、数组和函数concat将参数列表连接到原数组后面形成一个新的数组并返回&#xff0c;原有数组不受影响。 var arr ["a","b","c"];var arr1 arr.concat("d","e");//arr1 ["a","b","c",&quo…

影视资料

影视资料栏目属于一把刀实用查询大全的娱乐类别。中国最大的影视资料数据库和影人明星数据库&#xff0c;囊括包括中国、中国香港、中国台湾、美国、日本、韩国、英国等全球数十个国家的电影、电视资料及相关海报、剧照。转载于:https://blog.51cto.com/65000/41062

VA Code编写html(1)

<html><head><title>my webside</title><!--win‘/’注释行--><!--防止中文乱码在head中添加如下代码--><meta charset"utf-8"><body><!--<img src"image/1.jpg" alt"未找到图片">加载…

Handling Errors Exceptionally Well in C++ 在C++中良好地捕获意外的错误

Handling Errors Exceptionally Well in C在C中良好地捕获意外的错误from:http://www.cprogramming.com/tutorial/exceptions.htmlauthor:unknown翻译&#xff1a;范晨鹏One benefit of C over C is its exception handling system. An exception is a situation in which a pr…

MFC 使用 Picture control 显示图片和数据流

一、使用现有的图片文件显示在 界面 picture 控件 在MFC picture 加载bitmap 图片方法图片可以是从资源文件夹来的&#xff0c;也可以是文件路径等CBitMap 载入图像接口 有两种方式 BOOL LoadBitmap(LPCTSTR lpszResourceName); // 资源文件名 BOOL LoadBitmap(UINT nIDResour…

MFC 对话框添加重写初始化对话框函数来设置界面

BOOL MyVideo::OnInitDialog() {CDialogEx::OnInitDialog(); // 调用父类// TODO: 在此添加额外的初始化imageScaleValue.SetCurSel(0);imageScaleValue.AddString(_T("1"));imageScaleValue.AddString(_T("2"));imageScaleValue.AddString(_T("3&qu…

OSPF动态路由协议入门简介

——随着Internet技术在全球范围的飞速发展&#xff0c;OSPF已成为目前Internet广域网和Intranet企业网采用最多、应用最广泛的路由协议之一。OSPF&#xff08;Open Shortest Path First&#xff09;路由协议是由IETF&#xff08;Internet Engineering Task Force&#xff09;I…

linux磁盘冗余阵列

RAID防止硬盘物理损坏以及增加存储设备的吞吐量&#xff0c;RAID常见的组合有0、1、5、和10RAID0:至少需要两块硬盘&#xff0c;可以有效提高硬盘的性能和吞吐量&#xff0c;但没有数据的冗余和错误修复能力将多块硬盘通过硬件或软件的方式串联在一起&#xff0c;成为一个大的卷…

关于管理的经典故事(员工激励)

员工管理和激励是一个复杂的事情&#xff0c;有时让管理者摸不着头脑&#xff0c;甚至感到头疼。销售管理往往并非现场管理&#xff0c;遥控管理无形之中增加了管理的难度。轻松一下&#xff0c;看看以下的十个经典故事&#xff0c;也许你会领略到管理的另一种意境。 一、 分工…

解决 413 Request Entity Too Large(请求实体太大)

今天做上传视频&#xff0c;报错413 Request Entity Too Large 我们可以看到请求的body的大小&#xff0c;在Content-Length后显示&#xff0c;Nginx默认的request body为1M&#xff0c;小于我们上传的大小 解决方案 找到自己主机的nginx.conf配置文件&#xff0c;打开 在http…

YUV422 转换成 RGB

#define CLIPVALUE(x, minValue, maxValue) ((x) < (minValue) ? (minValue) : ((x) > (maxValue) ? (maxValue) : (x))) #define YUVToR(Y, U, V) ( (Y) 1.4075 * ((V) - 128) ) #define YUVToG(Y, U, V) ( (Y) - 0.3455 * ((U) - 128) - 0.7169 * ((V) - 128) ) #de…

带参数的方法

1.语法&#xff1a; <访问修饰符>放回值类型<方法名><(形式方法列表)>{ //方法的主体 } 2.调用带参方法 语法&#xff1a;对象名.方法名&#xff08;参数1&#xff0c;参数2.....参数N&#xff09; 转载于:https://www.cnblogs.com/zyani/p/6…

【oracle灾备方案系列】基于DDS的Oracle复制容灾方案(三)

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />【oracle灾备方案系列】基于DDS的Oracle灾备方案&#xff08;三&#xff09;1. 数据查询应用平台方案1.1. 构建企业的第二数据中心在基于DataGrid DDS产品实现灾备架构中&am…

MFC 让界面点击无效

把 Disableed 设置为 True 就是让界面不再接受鼠标等控制。

关于 There is no getter for property named ‘id‘ in ‘class java.lang.Integer‘

errMsgorg.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named parentId in class java.lang.Integer 加上 Param("")注解