前台代码

<script type="text/javascript">//客户端捕捉事件function CheckEvent() {var objNode = event.srcElement;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><body><form id="form1" runat="server"><asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" οnclick="CheckEvent()"></asp:TreeView></form>
</body>

后台代码:
private void BindGrid()
{
DataTable mytable = menuTableBll.GetAllList().Tables[0]; //获取数据

CreateTree(mytable, TreeView1.Nodes, "0");
}
private void CreateTree(DataTable dtNodeSets, TreeNodeCollection node, string parent_id)
{
DataView dvList = new DataView(dtNodeSets);
dvList.RowFilter = "MeunParentId =" + parent_id;

TreeNode nodeTemp;
foreach (DataRowView dv in dvList)
{
nodeTemp = new TreeNode();
nodeTemp.Text = dv["MenuName"].ToString();
nodeTemp.Expanded = true;
nodeTemp.ToolTip = dv["MeunId"].ToString();

node.Add(nodeTemp);
CreateTree(dtNodeSets, nodeTemp.ChildNodes, dv["MeunId"].ToString());
}
}

转载于:https://www.cnblogs.com/zgaspnet/archive/2011/07/05/2097945.html

TreeView 用法(有代码)相关推荐

  1. Python - while语句和if语句 的 用法 及 代码

    while语句和if语句 的 用法 及 代码 本文地址 : http://blog.csdn.net/caroline_wendy/article/details/17199771 Python中wh ...

  2. input type=range标签用法实例代码

    在HTML5中,又新增许多新<input>控件类型,比较实用的一个就是<input type="range">,以滑竿的方式来调整value值,在这以前需要 ...

  3. C# WinForm TreeView用法总结

    TreeView用法值得总结一下,今天用到了,一时忘了怎样执行选中节点事件. private void BindTreeView() {     treeView1.LabelEdit = false ...

  4. C++中 Map的了解与基本用法(代码演示+自我总结+map中一对多的用法)

    C++中 map的了解与基本用法(代码演示) 一:map的基本认识 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值) ...

  5. 测试Rockey4Smart加密锁之模块字和三算法的用法C#代码

    测试Rockey4Smart加密锁之模块字和三算法的用法C#代码 private void btn_LookZzghjk_Click(object sender, EventArgs e) { if ...

  6. html渐变线条代码,CSS3实现线性渐变用法示例代码详解

    前言 演示下太老版本浏览器的渐变实现了[IE9-]; IE9以前,渐变都是通过滤镜实现的,大体的写法就是这样; .testDiv { width:400px; height:400px; border ...

  7. python numpy allclose用法及代码示例

    python numpy allclose用法及代码示例 用法: numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False) 如果两个数 ...

  8. PostgreSQL REGEXP_REPLACE用法及代码示例

    PostgreSQL REGEXP_REPLACE用法及代码示例: 原文链接:https://vimsky.com/examples/usage/postgresql-regexp_replace-f ...

  9. choose when 改在java中_Mybatis choose when用法实例代码

    mybatis choose when的用法实现代码如下所示: mapper.xml: select a.city_id as CITYID, a.level1_maintain_unit_id as ...

  10. merge函数_C++ - 标准库 merge 函数 的 用法及代码

    标准库 "merge" 函数 的 用法及代码 merge() 是 C++ 标准库的函数, 主要实现函数的排序和合并, 不仅仅是合并, 具体要求参照标准库. 如果是通用方法, 则第二 ...

最新文章

  1. 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法
  2. 中科院亚热带生态所赵杰:喀斯特生态系统土壤微食物网组成与功能
  3. 更改UISwitch大小
  4. virtualbox 中centOS在不能ssh
  5. HTTP协议 -- TCP/IP通信传输流
  6. 主存块和cache块关系_Cache(直接相联)
  7. 【C++深度剖析教程30】C++中抽象类和接口
  8. echarts自学笔记
  9. 《三体》动画版官宣!B站出品 刘慈欣“倒吸一口凉气”
  10. 使用case语句的3个诀窍
  11. retrofit2 发送json数据_使用浏览器发送post请求
  12. php获取客户端IP地址的几种方法
  13. 日期时间类-Date,Calendar和日期格式化
  14. 宝塔php7.1安装ioncube,如何使用宝塔安装ionCube扩展
  15. 大数据面试3分钟自我介绍_面试的时候,如何自我介绍?
  16. 中国纯碱市场产销现状与投资效益预测报告(2022-2027年)
  17. golang中的URL 的编码和解码(转)
  18. 手把手:用OpenCV亲手给小扎、Musk等科技大佬们做一张“平均脸”(附Python代码)
  19. 数据库设计 - 01外卖配送系统
  20. python怎么批量爬取图片_python批量爬取网络图片

热门文章

  1. PyCharm中直接使用Anaconda已安装的库
  2. 开发一个React + Electron应用
  3. bzoj 3527 [Zjoi2014]力——FFT
  4. mysql快速部署主从复制
  5. HTML5 Canvas游戏开发(二)高级功能
  6. Nginx 限制单个IP的并发连接数及对每个连接速度(限速)
  7. Sql server 分解字符串(实现split)
  8. 玩转PHP关联数组的10个技巧(3)
  9. 湖北省地税应用灾备中心正式启用
  10. 2020年5月机器视觉工作阶段性总结