使用根深蒂固的datalist填充treeview

时间:2013-01-09 05:34:32

标签: c# .net treeview sql-server-2008-r2

我有一个名为Department的表,有3列[DepartmentID,ParentDepID,DepartmentName]。每个部门可能有一个父部门(ParentDepID),可以有父母等等。我想将此数据从sql-server加载到treeview

这是一个虚构的数据推理

DepID ------ ParentID ------- Name

1 ----------------空------------ HospitalA
2 ----------------- 1 -------------- SurgeryDepartment
3 ----------------- 1 -------------- CancerDepartment
4 ----------------- 1 -------------- HeartDiseases
5 ----------------- 2 -------------- BrainSurgery
6 ----------------- 2 --------------分娩
7 ----------------- 5 -------------- UpperBrainSurgery
8 ----------------- 5 -------------- LowerBrainSurgery

这可以更深入(n)次,我想将这些数据加载到我的树视图中 到目前为止我尝试了什么? 很遗憾我不知道该怎么做,所以请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

            // Manage Tree View Nodes in RunTime
            // In order to manage a node you should set a key for each node
            // in your case records id's could be fine
            treeView1.Nodes.Add("RootNode1Key","Root Node1");
            treeView1.Nodes.Add("RootNode2Key", "Root Node2");
            // adds a node in runtime with title Root Node
            //Now add a Child to "Root Node 2"
            // first find the node and make a pointer to it :^)
            TreeNode FoundedNode;
            FoundedNode = treeView1.Nodes.Find("RootNode2Key", true)[0];
            // if you create a unique key for each node the find function returns
            // a tree node array with only one node and you access it like above 
            // else you retrieve many records of TreeNode
            FoundedNode.Nodes.Add("RootNode2Childe1", "Root Node2 Child 1");
            // hey now you added a child node to RootNode2
            // you want to add a child for it in depth 
            // 2 ways :
            // 1: yous find method  treeView1.Nodes.Find("RootNode2Childe1", true)[0];
            // 2: Following
            FoundedNode.Nodes["RootNode2Childe1"].Nodes.Add("RootNode2Childe1Child1", "my parent is RootNode2Childe1");

现在,如果你想删除一个很容易就像跟随

private void button2_Click(object sender, EventArgs e)
        {
            // i am sure you know how to add nodes now remove a node
            TreeNode FoundedNode;
            FoundedNode = treeView1.Nodes.Find("RootNode2Childe1Child1", true)[0];
            FoundedNode.Remove();
        }

但我建议你在网上搜索一些方法和更好的解决方案,你可以使用数据源,然后当一条记录添加到你的表中并删除一条记录然后你的树视图更新,反之亦然

* 向其他伊朗人和程序员提供此社区的会员船*

答案 1 :(得分:0)

首先,您需要添加根节点(没有父节点的最基本节点),然后添加子节点..此链接将帮助您:Populate TreeView from DataBase