1、在 Page_Load(object sender, EventArgs e) 里面加入: TreeView1.Attributes.Add("onclick", "CheckEvent(event)");//TreeView1是树控件的名称。

javascript 放到 <head></head> 之间 <script type="text/javascript">

<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script type="text/javascript">
        function CheckEvent(evt) {
            evt = window.event || evt;
            var objNode = evt.srcElement || evt.target;
            if (objNode.tagName == "INPUT" && objNode.type == "checkbox") {
                var objParentDiv = objNode.id.replace("CheckBox", "Nodes");
                if (objNode.checked == true) {
                    setChildCheckState(objParentDiv, true);

setParentCheckeState(objNode, true);
                }
                else {
                    setChildCheckState(objParentDiv, false);

if (!HasOtherChecked(objNode)) {
                        setParentCheckeState(objNode, false);
                    }
                }
            }
        }

//判断是否有并行的其他节点被选中
        function HasOtherChecked(objNode) {
            var objParentDiv = WebForm_GetParentByTagName(objNode, "div");

var chks = objParentDiv.getElementsByTagName("INPUT");
            for (var i = 0; i < chks.length; i++) {
                if (chks[i].checked && chks[i].id != objNode.id) {
                    return true;
                }
            }
            return false;
        }

//设置父节点
        function setParentCheckeState(objNode, chkstate) {
            try {
                var objParentDiv = WebForm_GetParentByTagName(objNode, "div");

if (objParentDiv == null || objParentDiv == "undefined ") {
                    return;
                }
                else {
                    var objParentChkId = objParentDiv.id.replace("Nodes", "CheckBox");
                    var objParentCheckBox = document.getElementById(objParentChkId);

if (objParentCheckBox) {
                        objParentCheckBox.checked = chkstate;
                        setParentCheckeState(objParentDiv, chkstate);
                    }
                }
            }
            catch (e) { }
        }

//设置子节点
        function setChildCheckState(nodeid, chkstate) {
            var node = document.getElementById(nodeid);

if (node) {
                var chks = node.getElementsByTagName("INPUT");
                for (var i = 0; i < chks.length; i++) {
                    chks[i].checked = chkstate;
                }
            }
        }
    </script>
</head>

2、在Page_Load中进行注册事件

protected void Page_Load(object sender, EventArgs e) {
            TreeView1.Attributes.Add("onclick", "CheckEvent(event)");
        }

asp.net 实现treeview 选中父节点其子节点也选种中 选中子节点其父节点与根节点也被选中的更多相关文章

  1. js input复选框选中父级同时子级也选中

    js实现复选框选中父级元素子级元素也选中,没有子级元素选中父级也不选中的效果 HTML <tr> <td> <label> <input name=" ...

  2. Corporative Network (有n个节点,然后执行I u,v(把u的父节点设为v)和E u(询问u到根节点的距离))并查集

    A very big corporation is developing its corporative network. In the beginning each of the N enterpr ...

  3. C#操作XML学习之创建XML文件的同时新建根节点和子节点(多级子节点)

    最近工作中遇到一个问题,要求创建一个XML文件,在创建的时候要初始化该XML文档,同时该文档打开后是XML形式,但是后缀名不是.在网上找了好些资料没找到,只能自己试着弄了一下,没想到成功了,把它记下来 ...

  4. 解析某些特殊格式XML文件时,获取不到根节点问题

    还是在语音识别这块.在读取本地的SRGS的XML后,无法获取到根节点<grammar>. 下面是SRGS.XML文件(只给出了根节点) <?xml version="1.0 ...

  5. 我眼中的Linux设备树(五 根节点)

    五 根节点一个最简单的设备树必须包含根节点,cpus节点,memory节点.根节点的名字及全路径都是"/",至少需要包含model和compatible两个属性.model属性我们 ...

  6. Linux设备树(五 根节点)

    五 根节点 一个最简单的设备树必须包含根节点,cpus节点,memory节点.根节点的名字及全路径都是“/”,至少需要包含model和compatible两个属性.model属性我们在属性那节已经说过 ...

  7. PyQt(Python+Qt)学习随笔:invisibleRootItem方法访问QTreeWidget树型部件的隐形根节点

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 我们知道在数据结构上来说,任何树都是有根节点的,但我们在QTreeWidget对象中并没有看到界面上 ...

  8. treeview插件使用:根据子节点选中父节点

    鄙人公司没有专门的前端,所以项目开发中都是前后端一起抡.最近用bootstrap用的比较频繁,发现bootstrap除了框架本身的样式组件外,还提供了多种插件供开发者选择.本篇博文讲的就是bootst ...

  9. javascrip实现:若选中TreeView的父节点checkbox,则其子节点全部选中;子节点全部没选中,则父节点也会没选中。

    <script type="text/javascript"> function public_GetParentByTagName(element, tagName) ...

随机推荐

  1. Virtual IP address

    https://en.wikipedia.org/wiki/Virtual_IP_address Virtual IP address From Wikipedia, the free encyclo ...

  2. SAP更改日志记录表

    CDHDR  更改日志表头 CDPOS  更改日志行项目 SAP中修改频率较低的定制表(T001等)一般都会有修改记录存在,查看一个表有没有修改记录可以在SE11中查看他的技术设置,如果其中的LOG ...

  3. Lightoj 1018 - Brush (IV)

    1018 - Brush (IV)    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Muba ...

  4. Dancing Links 专题总结

    算法详细:Dancing Links博客 1.精确覆盖: ZOJ3209 Treasure Map HUST1017 Exact cover POJ3074 Sudoku 2.可重复覆盖: HDU22 ...

  5. 一场由过滤器Filter引发的血案

    一场由过滤器Filter引发的血案 事件起因 本来应该是下图的登录界面 变成了这样 What's the fuck????? 抓狂 原因 解决方法: 在过滤器中给资源文件开个绿色通道

  6. 数据库sqlite3的使用-代码实例应用

      一.使用代码的方式批量添加(导入)数据到数据库中 1.执行SQL语句在数据库中添加一条信息 插入一条数据的sql语句: 点击run执行语句之后,刷新数据 2.在ios项目中使用代码批量添加多行数据 ...

  7. I.MX6 Android can-utils 移植

    /******************************************************************* * I.MX6 Android can-utils 移植 * ...

  8. BZOJ_5369_[Pkusc2018]最大前缀和_状压DP

    BZOJ_5369_[Pkusc2018]最大前缀和_状压DP Description 小C是一个算法竞赛爱好者,有一天小C遇到了一个非常难的问题:求一个序列的最大子段和. 但是小C并不会做这个题,于 ...

  9. 80个Python经典资料(教程+源码+工具)汇总——下载目录 ...

    原文转自:http://bbs.51cto.com/thread-935214-1.html 大家好,51CTO下载中心根据资料的热度和好评度收集了80个Python资料,分享给Python开发的同学 ...

  10. Github个人主页不显示提交记录的问题

    最近发现自己连续三天在github上的提交没显示在个人主页上,一番搜索后终于发现原来是因为没有把git的配置改过来,提交的代码时使用了不同的email. https://code.bradymower ...