首页 > 其他分享 >树开下拉列表数据源生成

树开下拉列表数据源生成

时间:2024-06-08 13:55:27浏览次数:9  
标签:outDt string 数据源 列表 树开 dtNodeSets 缩入 textColName dr

改自这位兄台的一段代码

https://www.cnblogs.com/xiayang/archive/2010/07/19/1780566.html

 

 1     /// <summary>
 2     /// 生成一个树形的表样,
 3     /// </summary>
 4     /// <param name="dtNodeSets">菜单记录数据所在的表</param>
 5     /// <param name="parentColName">表中用于标记父记录的字段</param>
 6     /// <param name="rootValue">筛选的根值</param>
 7     /// <param name="indexColumn">索引列</param>
 8     /// <param name="textColName">文本列</param>
 9     /// <param name="i"></param>
10     /// <param name="outDt"></param>
11     protected void MakeTree(DataTable dtNodeSets, string parentColName, string rootValue, string indexColumn, string textColName, int i, ref DataTable outDt)
12     {
13         //每向下一层,多一个缩入单位
14         if (outDt == null || outDt.Columns.Count == 0)
15         {
16             outDt = dtNodeSets.Clone();
17         }
18         i++;
19         List<DataRow> drs = dtNodeSets.Select(parentColName + "=" + rootValue).ToList();
20         string strPading = ""; //缩入字符
21         //通过i来控制缩入字符的长度,我这里设定的是一个全角的空格
22         for (int j = 0; j < i; j++)
23             strPading += " "; //如果要增加缩入的长度,改成两个全角的空格就可以了
24         foreach (DataRow dr in drs)
25         {
26             dr[textColName] = strPading + "└─ " + dr[textColName].ToString();
27             outDt.ImportRow(dr);
28             MakeTree(dtNodeSets, parentColName, dr[indexColumn].ToString(), indexColumn, textColName, i, ref outDt);
29         }
30         //递归结束,要回到上一层,所以缩入量减少一个单位
31         i--;
32     }

 

最后的绑定后的效果如下:

 

标签:outDt,string,数据源,列表,树开,dtNodeSets,缩入,textColName,dr
From: https://www.cnblogs.com/rovedog/p/18238576

相关文章

  • C++全栈聊天项目(20) 聊天列表动态加载
    聊天列表动态加载如果要动态加载聊天列表内容,我们可以在列表的滚动区域捕获鼠标滑轮事件,并且在滚动到底部的时候我们发送一个加载聊天用户的信号boolChatUserList::eventFilter(QObject*watched,QEvent*event){//检查事件是否是鼠标悬浮进入或离开if(wat......
  • 【SpringBoot笔记46】SpringBoot多数据源配置(方式三:基于AOP动态切换需要使用哪个数据
    这篇文章,主要介绍SpringBoot多数据源配置(方式三:基于AOP动态切换需要使用哪个数据源)。目录一、SpringBoot多数据源配置1.1、多数据源介绍1.2、搭建基础工程1.3、创建两个数据库1.4、配置多数据源信息1.5、创建动态数据源对象1.6、创建DsContextHolder缓存类1.7、注入......
  • C++入门 初始化列表 & 隐式类型转换
    目录初始化列表构造函数体赋值初始化列表格式初始化列表特性每个成员变量在初始化列表中只能出现一次类中以下成员必须初始化尽量使用初始化列表初始化数组初始化 声明次序就是初始化顺序多参数初始化列表再谈隐式类型转换拷贝引用explicit关键字定义用法缺......
  • 多选列表用法
    文章目录知识回顾使用方法示例代码我们在上一章回中介绍了扩展内容相关的知识,本章回中将介绍单选列表和复选列表.闲话休提,让我们一起TalkFlutter吧。知识回顾我们在本章回中将介绍单选和复选列表,它们是常用的组件,不只在移动平台中使用,在其它平台上也经常被使用,......
  • 开车旅行|倍增优化dp+双端列表/set|题解
    题面:题面链接这题的思路值得借鉴,也是我做的第一道倍增优化dp题目.比较好的是题目的意思较为清晰,所以不再赘述.解析:这里我们可以非常直接的想到暴力模拟,因为第一眼看上去前七个点的数据范围是支持我们进行一个简单的预处理得到对应人在对应位置的决策的.(排序O(n×sqrt(......
  • Python3 元组、列表、字典、集合小结
    前言本文主要对Python中的元组、列表、字典、集合进行小结,主要内容包括知识点回顾、异同点、使用场景。文章目录前言一、知识点回顾1、列表(List)2、元组(Tuple)3、字典(Dictionary)4.、集合(Set)二、异同点1、异构性2、可变性3、有序性4、可迭代性三、使用场景1、列表(List......
  • 揭秘电商高效运营:一键获取1688店铺商品列表的API秘籍
    1688平台是阿里巴巴集团旗下的B2B电子商务网站,为商家提供了一个庞大的商品交易市场。对于需要自动化获取商品信息的商家和开发者来说,1688提供了API接口服务。数据精确获取:提供店铺商品的详细信息。自动化操作:减少人工干预,提高工作效率。参数自定义:用户可根据需求设定查询参......
  • 函数返回的是非类型而不是列表
    我正在使用opencv制作人脸检测器,我制作了两个检测器,分别检测两个正面的哈拉卡斯卡特。然后,我编写了一段代码,只有当两个检测器检测到同一区域时,才会显示矩形。这样做效果很好,但当我把同样的代码放到函数中时,它就会返回非类型。如果我将矩形绘制放在函数内,它就会工作,但放在函数外......
  • list 列表(属于集合collection中的一种)
    list类型,有序可变list内的数据可以混合,string+int等 取出集合内元素:list=["hello",11,33,"world"](index索引从0开始)0123单个取出:(变量接收)=list[0]批量取出:(变量接收)=list[0:2](此处范围包左不包右,去除的元素索引为0和1) 内置函数:(变......
  • kube-platform平台可视化的第一个接口-namespace列表
    目录概述实践代码启动概述  此文完成kube-platform平台的第一个接口namespace列表返回。  kube-platform从平台搭建至完成第一个接口,至此基本框架就已成型,在此对几篇文章做整理。1.kube-plaform-gin框架使用2.kube-plaform-viper框架使用kube-plaform-cl......