手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#TreeView 无限级别分类实现方法
C#TreeView 无限级别分类实现方法
摘要:做分类经常会用到无限级别的分类先介绍一下数据库的表结构tid类别编号tname类别名称pid父类编号测试数据就不写了,大家可以自己插入一下试...

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

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

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#TreeView 无限级别分类实现方法2

【C#TreeView 无限级别分类实现方法】相关文章:

winform树形菜单无限级分类实例

C# 透明窗体制作实现方法比较分析

遍历Hashtable 的几种方法

C# cmd中修改显示(显示进度变化效果)的方法

C# 获取属性名的方法

C# dynamic关键字的使用方法

c# 重载WndProc,实现重写“最小化”的实现方法

C#操作IIS程序池及站点的创建配置实现代码

C#连接db2数据库的实现方法

C# DataGridView添加新行的2个方法

精品推荐
分类导航