当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

ASP.NET 创建树

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入  数据表的格式如下:

行的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);                    //进入递归
            }

        }
相关内容
赞助商链接