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();