TreeView无限极分类绑定(从数据库读取数据源)

TreeView这个控件其实我本来不怎么会用到,今天有一个项目要用到,而且是 无限极的分类数据绑定,于是就根据自己以前写过的代码别写出了这个无限极分类的例子,呵呵希望能够对大家有所帮助,本人尽量把注释写的详细一些把,因为有 的时候搜问题到别人的博客,写的代码完全看不懂,每个人写代码可能都有一定的习惯,所以一定要多写一些注释让别人看懂!

首先说一下我的数据库结构

Pid                主键自动增长

PartName       分类名称

ParentId        父级ID

相信大家一定都会很熟悉吧,这是无限极分类比较常用的一种设计思路!好了接下来看代码吧,自己认为这个还是很强大的,使用了递归的操作,大大减少了代码量!

复制代码
        /// <summary>  
        
/// 控件绑定父节点 
        
/// </summary>  
        private void TreeViewBind()
        {
            DataSet ds 
= pbll.GetList("");   //数据源读取所有数据
            DataView dv = ds.Tables[0].DefaultView;
            dv.RowFilter 
= "ParentId=0";   //筛选ParentId=0为顶级分类
            TreeView1.ShowCheckBoxes = TreeNodeTypes.All;
            
foreach (DataRowView drv in dv)
            {
                TreeNode node 
= new TreeNode();
                node.Text 
= drv["PartName"].ToString();
                node.Value 
= drv["Pid"].ToString();
                node.Expanded 
= false;
                TreeView1.Nodes.Add(node);
                AddReplies(dv, node);
            }
        }
        
/// <summary>  
        
/// 递归绑定子节点  
        
/// </summary>  
        
/// <param name="dv"></param>  
        
/// <param name="node"></param>  
        private void AddReplies(DataView dv, TreeNode node)
        {
            dv.RowFilter 
= "ParentId='" + node.Value + "'";
            
foreach (DataRowView row in dv)
            {
                TreeNode replyNode 
= new TreeNode();
                replyNode.Text 
= row["PartName"].ToString();
                replyNode.Value 
= row["Pid"].ToString();
                replyNode.Expanded 
= false;
                node.ChildNodes.Add(replyNode);
                AddReplies(dv, replyNode);
            }
        }
复制代码
posted @   易独  阅读(322)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
乐巴儿 一个有声音的公众号
长按,识别二维码,加关注
点击右上角即可分享
微信分享提示