C#TreeView 无限级别分类实现方法

 更新时间:2020年6月25日 11:42  点击:2431

做分类 经常会用到无限级别的分类  先介绍一下数据库的表结构

tid  类别编号

tname 类别名称

pid 父类编号

测试数据就不写了,大家可以自己插入一下试试

查询制定类别的 所有的子类   sql 的 代码

复制代码 代码如下:

alter proc  proc_chaxun
(@tid int )
as
begin 

   
    with tt  as
    (

        select tid,tname,pid from dbo.t_goodsType where tid=@tid
        union all
        select t.tid,t.tname,t.pid from dbo.t_goodsType  t inner join tt
        on t.pid=tt.tid
    )
    select * from tt
end

查询之后获取记录集   绑定到前台的 TreeView 上面

复制代码 代码如下:

 /// <summary>
            /// 给Tree 绑定数据 递归添加子节点
            /// </summary>
            /// <param name="dv">数据视图</param>
            /// <param name="tnOld">添加数据的节点</param>
            public void TreeDataBind(DataView dv,TreeNode tnOld)
            {
                TreeNode tnNew;    //创建一个新的节点
                foreach (DataRowView drv in dv)
                {
                    //为新的借点设置属性
                    tnNew = tnOld.Nodes.Add(drv["tname"].ToString());
                    tnNew.Tag = drv["tid"];
                    //过滤数据视图 父类id = 上一级的tid
                    dv.RowFilter = "pid=" + drv["tid"].ToString();
                    //自己调用自己
                    TreeDataBind(dv, tnNew);
                }
            }

调用的方法很简单

复制代码 代码如下:

DataTable dtRet = (DataTable)dh.ExecProcRetObj(ep);
DataView dv = new DataView(dtRet);
 dv.RowFilter = "pid=0";
TreeDataBind(dv, this.treeView1.Nodes.Add("商品类别"));

效果

[!--infotagslink--]

相关文章

  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • PHP实现递归无限级分类

    在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把...2015-10-23
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • JS树形菜单组件Bootstrap TreeView使用方法详解

    这篇文章主要为大家详细介绍了js组件Bootstrap TreeView使用方法,本文一部分针对于bootstrap的treeview的实践,另一部分是介绍自己写的树形菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-09
  • php无限分类使用concat如何实现

    一、数据库设计 -- -- Table structure for table `category` -- CREATE TABLE `category` ( `id` int(11) NOT NULL auto_increment, `catpath` varchar(255) default NULL, `name` varchar(255) default NULL...2015-11-08
  • C# TreeView控件使用代码

    TreeView控件的实例代码,需要的朋友可以参考下。...2020-06-25
  • Python深度学习之简单实现猫狗图像分类

    这篇文章主要介绍了Python深度学习之简单实现猫狗图像分类,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-29
  • 解决vue中的无限循环问题

    这篇文章主要介绍了解决vue中的无限循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • winform树形菜单无限级分类实例

    本文介绍了“winform树形菜单无限级分类实例”,需要的朋友可以参考一下...2020-06-25
  • C#搜索TreeView子节点,保留父节点的方法

    这篇文章主要介绍了C#搜索TreeView子节点,保留父节点的方法,实例分析了C#操作TreeView节点的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • PHP无限分类(树形类)

    复制代码 代码如下:<?php//模拟PHP无限分类查询结果return array( array( 'id'=>1, 'pid'=>0, 'name'=>'主页' ), array( 'id'=>2, 'pid'=>0, 'name...2013-10-04
  • Winform中Treeview实现按需加载的方法

    这篇文章主要介绍了Winform中Treeview实现按需加载的方法,针对大数据量的情况下非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • C#TreeView 无限级别分类实现方法

    C#TreeView 无限级别分类实现方法...2020-06-25
  • C# TreeView读取数据库简单实例

    这篇文章主要介绍了...2020-06-25
  • thinkphp实现无限分类(使用递归)

    这篇文章主要介绍了在使用递归的情况下thinkphp实现无限分类,感兴趣的小伙伴们可以参考一下...2015-12-21
  • 使用TensorFlow-Slim进行图像分类的实现

    这篇文章主要介绍了使用TensorFlow-Slim进行图像分类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-06
  • 使用pygame实现垃圾分类小游戏功能(已获校级二等奖)

    这篇文章主要介绍了使用pygame实现垃圾分类小游戏功能(已获校级二等奖),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-24
  • php 无限级分类 获取顶级分类ID

    这篇文章主要介绍了php 无限级分类 获取顶级分类ID的相关代码,需要的朋友可以参考下...2016-03-15
  • 详解WordPress中分类函数wp_list_categories的使用

    这篇文章主要介绍了详解WordPress中分类函数wp_list_categories的使用,文中罗列其主要参数的功能和写法,需要的朋友可以参考下...2016-01-07