TreeView control is a powerful server-control for rendering TreeView UI.I will bind a datatable to a treeview contriol,here is the code:
aspx:
1 2 | <asp:TreeView ID="TV_Department" runat="server" OnSelectedNodeChanged="TV_Department_SelectedNodeChanged" ExpandDepth="6" width="240px" BorderWidth="0px" BorderColor="White" BackColor="White" LineImagesFolder="~/TreeLineImages" NodeWrap="True" ImageSet="Msdn" NodeIndent="10"> </asp:TreeView> |
cs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindTree(isTheme.DeptID); } } /// <summary> /// /// </summary> void BindTree(int DeptID) { DataTable dt = getlist.GetList(" * ", "").Tables[0];// we can get the datatable from MSSQL XML and so on. DataView dv = new DataView(dt); dv.RowFilter = "DeptID =" + DeptID; TV_Department.Nodes.Clear(); if (dt.Rows.Count > 0) { foreach (DataRowView drv in dv) { TreeNode node = new TreeNode(); node.Text = drv["DeptShortName"].ToString(); node.Value = drv["DeptID"].ToString(); node.Expanded = true; node.SelectAction = TreeNodeSelectAction.Select; TV_Department.Nodes.Add(node); AddReplies(dt, node); } TV_Department.SelectedNodeStyle.BackColor = System.Drawing.Color.FromArgb(242, 255, 253); } } /// <summary> /// get the children /// <param name="dt"></param> /// <param name="node"></param> private void AddReplies(DataTable dt, TreeNode node) { DataView dv = new DataView(dt); dv.RowFilter = "PID='" + node.Value + "'"; foreach (DataRowView row in dv) { TreeNode replyNode = new TreeNode(); replyNode.Text = row["DeptShortName"].ToString(); replyNode.Value = row["DeptID"].ToString(); replyNode.Expanded = true; replyNode.SelectAction = TreeNodeSelectAction.Select; node.ChildNodes.Add(replyNode); AddReplies(dt, replyNode); } } |


