ASP.NET 创建树

   数据表的格式如下:

行的ParentLayNo值等于父节点的LayNo值

 层次编号   父节点编号 

   LayNo       ParentLayNo

   0001             0

  0001001       0001

  0001002       0001

 

    /// 
        /// 生成树,添加顶级节点
        /// 
        /// 用户TreeView控件
        /// 数据表结果集
        public static void createTree(TreeView vTreeView, DataTable vDataTable)
        {

            DataView vDataView = vDataTable.DefaultView;        //获取默认视图

            vDataView.Sort = "ParentLayNo ASC";                 //根据父节点字段排序

            DataRowView[] arrDRV = vDataView.FindRows(0);       //树根节点的父亲节点必须是0

            if (arrDRV.Length == 0)                             //如果没有儿子节点则直接返回
                return;

            TreeNode rootTreeNode = null;

            foreach (DataRowView vDRV in arrDRV)
            {
                rootTreeNode = new TreeNode(vDRV.Row[TableConfig.T_PUB_NAME[0]].ToString());//参数为显示的信息
                vTreeView.Nodes.Add(rootTreeNode);


                string layNo = vDRV.Row["layNo"].ToString();       //层次代码
                rootTreeNode.Value = layNo;//和winform的区别

                CreateTreeNode(vDataView, rootTreeNode);
            }
        }


        /// 
        /// 利用递归生成树
        /// 
        /// 获取默认视图
        /// TreeView控件节点引用
        private static void CreateTreeNode(DataView vDataView, TreeNode parentNode)
        {

            DataRowView[] arrDRV = vDataView.FindRows(parentNode.Value//找出同一父节点的所有子节点 

            if (arrDRV.Length == 0)                                 //如果没有儿子节点则直接返回
                return;

            TreeNode tmpTreeNode = null;

            foreach (DataRowView vDRV in arrDRV)
            {

                tmpTreeNode = new TreeNode(vDRV.Row[TableConfig.T_PUB_NAME[0]].ToString());//参数为显示的信息
                parentNode.Nodes.Add(tmpTreeNode);//添加节点

        
                string layNo = vDRV.Row["layNo"].ToString();       //层次代码
                tmpTreeNode.Value = layNo;//和winform的区别

                CreateTreeNode(vDataView, tmpTreeNode);                    //进入递归
            }

        }

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值