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

Jasmine ·
更新时间:2024-11-13
· 841 次阅读

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

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控件使用代码C# TreeView读取数据库简单实例c# TreeView添加右键快键菜单有两种方法js获取Treeview选中的节点(C#选中CheckBox项)c#的treeview绑定和获取值的方法C#实现treeview绑定的方法C#自定义DataGridViewColumn显示TreeViewC#实现TreeView节点拖拽的方法C#中TreeView实现适合两级节点的选中节点方法C#搜索TreeView子节点,保留父节点的方法C# TreeView无限目录树实现方法



方法 分类 treeview

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章