手机
当前位置:查字典教程网 >编程开发 >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 无限级别分类实现方法】相关文章:

C#图片压缩的实现方法

C# TextBox 扩展方法数据验证详细说明

C# WORD操作实现代码

C# 获取属性名的方法

解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法

C# 游戏外挂实现核心代码

C# javascript 读写Cookie的方法

解析如何正确使用SqlConnection的实现方法

c#根据文件类型获取相关类型图标的方法代码

C# 创建文本文件写入读取实现代码

精品推荐
分类导航