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

 更新时间:2013年04月01日 09:10:53   作者:  
C#TreeView 无限级别分类实现方法

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

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("商品类别"));

效果

相关文章

  • C#中LINQ的Select与SelectMany函数使用

    C#中LINQ的Select与SelectMany函数使用

    这篇文章主要介绍了C#中LINQ的Select与SelectMany函数使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 关于Unity C# Mathf.Abs()取绝对值性能测试详解

    关于Unity C# Mathf.Abs()取绝对值性能测试详解

    这篇文章主要给大家介绍了关于Unity C# Mathf.Abs()取绝对值性能测试的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Unity C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • C#操作RabbitMQ的完整实例

    C#操作RabbitMQ的完整实例

    这篇文章主要为大家详细介绍了C#操作RabbitMQ的完整实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • C#画笔使用复合数组绘制单个矩形的方法

    C#画笔使用复合数组绘制单个矩形的方法

    这篇文章主要介绍了C#画笔使用复合数组绘制单个矩形的方法,涉及C#使用画笔绘制图形的相关技巧,需要的朋友可以参考下
    2015-06-06
  • 详解C#中String.ToCharArray方法的使用

    详解C#中String.ToCharArray方法的使用

    这篇文章主要为大家详细介绍了C#中String.ToCharArray方法的使用的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • WPF实现自定义Panel面板的示例详解

    WPF实现自定义Panel面板的示例详解

    WPF中的Panel(面板),是继承自FrameworkElement的抽象类,表示一个可以用来排列子元素的面板,本文主要来和大家聊聊WPF如何实现自定义Panel,感兴趣的可以了解下
    2023-09-09
  • C#学习教程之Socket的简单使用

    C#学习教程之Socket的简单使用

    这篇文章主要给大家介绍了关于C#学习教程之Socket的简单使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • 基于WPF手写一个简单的消息对话框

    基于WPF手写一个简单的消息对话框

    消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口,本文将使用WPF手写一个简单的消息对话框,感兴趣的小伙伴可以了解下
    2023-12-12
  • Unity UGUI的Text文本组件使用示例

    Unity UGUI的Text文本组件使用示例

    这篇文章主要为大家介绍了Unity UGUI的Text文本组件使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • C#处理datagridview虚拟模式的方法

    C#处理datagridview虚拟模式的方法

    这篇文章主要介绍了C#处理datagridview虚拟模式的方法,实例分析了C#中datagridview的使用技巧,需要的朋友可以参考下
    2015-06-06

最新评论