zoukankan      html  css  js  c++  java
  • 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);
                }
            }

      好了就是这些了,有不明白的地方可以留言,更多精品免费源码尽在天天源码论坛(www.ttyuanma.com)

  • 相关阅读:
    独一份秘籍 | 开发数字孪生3D可视化炫酷场景?还有MAC电脑大奖可拿!
    数字孪生城市,如何破旧立新?ThingJS
    官方示例(十六):3D场景中BIM剖切面参数化开发ThingJS
    官方案例(十五):3D开发构造器参数测量多边形面积 ThingJS
    如何在Spring Boot 中使用 HandlerMethodArgumentResolver
    python的基本数据类型
    canvas 隐藏 踩坑
    小程序canvas 圆角框带填充颜色
    小程序 canvas 文字加粗
    flex布局 一行4个元素 后面不够4个元素对齐
  • 原文地址:https://www.cnblogs.com/tangxueyang/p/2105725.html
Copyright © 2011-2022 走看看