vs多级树动态加载

  private void LoadCategoryTreeView()

    {

        tv.Nodes.Clear();

 

        IList<Category> categoryList = categoryManager.GetAllCategories();

 

        IDictionary<int, TreeNode> CategoryDic = new Dictionary<int, TreeNode>();

 

        //循环类别集合,将集合里面的每个类别对象封装到IDictionary数据结构

        foreach (Category ct in categoryList)

        {

            TreeNode _node = new TreeNode(ct.Name,ct.Id.ToString());

 

            CategoryDic.Add(ct.Id,_node);

        }

 

        //准备建立IDictionary里面封装的TreeNode的从属关系

        foreach (Category ct in categoryList)

        {

            if (ct.ParentId == 0)//ParentId == 0说明是根节点

            {

                tv.Nodes.Add(CategoryDic[ct.Id]);

            }

            else//子节点

            {

                //找到这个当前节点的父节点

                TreeNode pn = CategoryDic[ct.ParentId];

                //找到当前节点

                TreeNode currentNode = CategoryDic[ct.Id];

                //把当前节点添加到父节点里面去

                pn.ChildNodes.Add(currentNode);

            }

        }

 

        tv.ExpandAll();

 

    }

 

 

 

 

//这个是winform里面动态树的写法。是两张表关联的树结构

  Core_Org core_Org;
            IList<Core_Org> listCore_Org = new List<Core_Org>();
            //命令对象
            gmyConn = gmyConn == null ? mySqlConnection.GetConn() : gmyConn;//连接数据库
            SqlCommand cmd = gmyConn.CreateCommand();
            cmd.CommandText = string.Format("select * from Core_Org  where OrgId != '9999'");
            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read()) //循环读取数据行
                {
                    core_Org = new Core_Org();
                    core_Org.OrgId = (string)reader["OrgId"];
                    core_Org.OrgName = (string)reader["OrgName"];
                    listCore_Org.Add(core_Org);
                }
            }
            foreach (Core_Org co in listCore_Org)
            {
                tvDoctor.Nodes.Add(co.OrgId, co.OrgName);
            }

            foreach (Core_Org co in listCore_Org)
            {
               
                SqlCommand cmd1 = gmyConn.CreateCommand();
                cmd1.CommandText = string.Format("select * from Core_User where OrgId='" + co.OrgId + "'");
                using (SqlDataReader reader = cmd1.ExecuteReader())
                {
                 
                    while (reader.Read()) //循环读取数据行
                    {
                        tvDoctor.Nodes[co.OrgId].Nodes.Add((string)reader["UserId"] + "-" + (string)reader["UserName"]);
                    }
                }
            }
            tvDoctor.ExpandAll();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值