ASP.NET控件TreeView可以关联XML,但是如何写递归构建TreeView节点呢?
假设有这么一个表
NodeID, NodeName, ParentID
下面我们来看看如何写出TreeView来
protected void getTreeViewHTML() { DataSet ds = GetDataSet(); DataView dv = ds.Tables[0].DefaultView; //filter for the parent //dv.RowFilter = " ParentID = '" + key + "'"; //render the brower with a <UL> tag and <LI> list //I have used some styles //StringBuilder sb = new StringBuilder(); TreeNode tr = new TreeNode("World", "0"); DoRecursive(ds, tr, true); TreeView1.Nodes.Add(tr); TreeView1.CollapseAll(); } protected void DoRecursive(DataSet ds, TreeNode tr, bool isRecursive) { DataView dv = ds.Tables[0].DefaultView; dv.RowFilter = " ParentID = '" + tr.Value + "'"; for (int i = 0; i < dv.Count; i++) { TreeNode tr1 = new TreeNode(dv[i]["NodeName"].ToString(), dv[i]["NodeID"].ToString()); tr.ChildNodes.Add(tr1); } foreach (TreeNode tnode in tr.ChildNodes) { DoRecursive(ds, tnode, isRecursive); } }