自己在网上找了一段时间都没有找到取自数据库的值与TreeView中的节点值进行对比如匹配则勾选中CheckBox的资料,后面自己写了一个递归方法实现,现在记录起来以备需要时使用。在没写这递归方法前如果需要一个一个对比深度为4的TreeView 需要不少于5个for循环,写太多内嵌的for循环觉得不好,因此写了以下的方法。

 /// <summary>/// 递归实现与TreeView节点值对比,如相同则该节点的CheckBox=True/// </summary>/// <param name="parentNode">节点</param>/// <param name="value">对比值</param>private void SetTreeViewChecked(TreeNode parentNode, int value){foreach (TreeNode node in parentNode.ChildNodes){if (node.Value == value.ToString()){node.Checked = true;}if (node.ChildNodes.Count > 0){SetTreeViewChecked(node, value);}}}//获取最后一次选择CheckBoxList勾选中的值protected void CheckRole_SelectedIndexChanged(object sender, EventArgs e){string s = Request.Form["__EVENTTARGET"];int index = Convert.ToInt32(s.Substring(s.LastIndexOf("$") + 1));BindListView(TreeViewMenu);//重新加载菜单TreeViewMenu.ExpandAll();if (CheckRole.Items[index].Selected){labRoleId.Text = CheckRole.Items[index].Value.ToString();labRole.Text = CheckRole.Items[index].Text.ToString();//根据角色名选查看所拥有的菜单权限DataTable dt = menuPerBll.GetListOfRoleId(Convert.ToInt32(labRoleId.Text)).Tables[0];//根据所选角色勾选已拥有的菜单if (dt.Rows.Count > 0){for (int j = 0; j < dt.Rows.Count; j++){for (int i = 0; i < TreeViewMenu.Nodes.Count; i++){SetTreeViewChecked(TreeViewMenu.Nodes[i], Convert.ToInt32(dt.Rows[j]["MenuId"].ToString())); //对比如值匹配的则checkBox的checked=true}}}}else{labRoleId.Text = "";labRole.Text = "";}}

转载于:https://www.cnblogs.com/lichengcai/p/4437599.html

使用递归方法遍历TreeView的节点如配置则勾选相关推荐

  1. unity pdg 设置隐藏不需要的节点以及实现自动勾选自动加载项

    首先旋转修改配置项接口 拖拽一个String类型的配置项 配置项的Name值必须要填henginedata,然后被识别到.显示名称可以随便填. 点击上面的Channels配置项,下面可以设置当前的默认 ...

  2. 遍历Treeview每个节点并初始化(C#)

    搞了好久,哎,C#的一些控件用起来还没习惯,所以折腾啊. TreeView的形成,必然要初始化,数据记录是从数据库中取得的,那么要先取再遍历.介绍下心得吧. 首先,数据预期显示结果如下 其次,数据库结 ...

  3. 【Jenkins】节点的配置与项目绑定

    一.环境准备 我的测试环境: 控制节点:main_node 受控节点:node1,node2 该示例是使用三台虚拟机搭建的测试环境,实体机搭建过程与虚拟机相同. 1.在控制节点上安装Jenkins J ...

  4. 遍历TreeView

    遍历TreeView 有两种遍历方式: 一:使用递归遍历 //my_condition条件 public void FindNodeFunc(string my_condition) {TreeVie ...

  5. hadoop slaves文件_hadoop:分布式集群参数master节点的配置!

    之前的文章中我们已经将master节点的网络IP.hostname文件.hosts文件配置完成,接下来还有hadoop相关配置文件需要修改.今天我们来讲master节点hadoop的配置. 1.hdf ...

  6. web.config中sessionState节点的配置方案

    web.config关于sessionState节点的配置方案,sessionState有五种模式:Custom,off,inProc,StateServer,SqlServer. 1.Custom模 ...

  7. java 遍历xml子节点,Axiom解析XML,axiomxml,1、遍历XML全部节点,

    Axiom解析XML,axiomxml,1.遍历XML全部节点, 1.遍历XML全部节点,将节点放入Map返回2.遍历XML当前父节点下的所有子节点 [Java]代码import java.util. ...

  8. python 遍历xml所有节点

    1.xml文件 2.代码 #coding:utf-8 import xml import xml.etree.ElementTree as ET""" 实现从xml文件中 ...

  9. TreeView查获节点并选中节点

    TreeView查获节点并选中节点如果有多个节点则会继续查找下一个节点 支持关键字搜索 private void SearchNodes(string SearchText, TreeNode Sta ...

最新文章

  1. js:深入prototype(下:原型重写)
  2. js的数据类型--数字
  3. 云服务器 架设传奇_传奇手游-战神引擎架设教程
  4. C# 多线程,解决处理大数据时窗体(不能拖动等)假死现象
  5. Linux-Android系统启动之INIT进程和system v init
  6. 排序算法(一)--桶排序、冒泡、快排(JAVA)
  7. 两图说明 java 开发工具中启动类参数都是干嘛的
  8. 关于Axure RP
  9. 设置CMD窗口为UTF-8编码
  10. 13、XSI,信号量简介
  11. 连接最大数 详解(C++)
  12. python 输入整数_python输入整数
  13. Devops 05 Jenkins
  14. UML培训取得姣好成绩,受到客户好评
  15. Navicat premium 导入大数据的Excel文件失败的方法
  16. php 月份英文,所有月份的英语单词
  17. 智能视频分析技术与被动红外技术的整合应用
  18. 双星物语MV2动画格式分析
  19. 【诗意农园,客家桃源】江西大余:洪翔农园基本峻工
  20. 【ROS】—— 机器人导航(仿真)—导航原理(十七)

热门文章

  1. 三维建模:方法之CSG与B-Rep比较
  2. ROS机器人程序设计(原书第2版)1.4.7 在BeagleBone Black中安装rosinstall
  3. C# MVC 项目下的路由配置-RouteConfig
  4. Python 类继承,__bases__, __mro__, super
  5. python之字典使用方法总结
  6. ospf-cost-FR选路实验
  7. Introduction to Financial Management
  8. ubuntu20.04的xfce4下面安装百度输入法linux版本
  9. fit,fit_generator的使用区别
  10. ubuntu18.10无法ping百度