模仿树形控件显示效果

建立树形结构:

 1 #region
 2         protected StringBuilder CreateTreeView()
 3         {
 4             string sql = "类型表";
 5             StringBuilder sb = new StringBuilder();
 6             OperateData ort = new OperateData();
 7             DataTable dt = ort.ExcuteToDataSet(sql).Tables["mytable"];
 8             sb.Append("|_<a href=NewsType.aspx?id=0>根目录</a><br>");
 9             CreateTreeViewRecursive(sb, dt, 0);
10             dt.Dispose();
11             ort = null;
12             return sb;
13         }
14        
15         /// <summary>
16         /// 递归查询
17         /// </summary>
18         /// <param name="nodes">TreeView的节点集合</param>
19         /// <param name="dataSource">数据源</param>
20         /// <param name="parentid">上一级行政区划的标识码</param>
21         protected void CreateTreeViewRecursive(StringBuilder mysb, DataTable dataSource, int parentid)
22         {
23             string filter;
24             filter = string.Format("p_oid={0}", parentid);
25             DataRow[] drarr = dataSource.Select(filter);
26             foreach (DataRow dr in drarr)
27             {
28                 if (parentid == 0)
29                 {
30                     mysb.Append("|&nbsp;&nbsp;&nbsp;&nbsp;|_<a href=NewsType.aspx?id=" + dr["p_id"].ToString() + "><font color=red>" + (string)dr["p_type"] + "</font></a><br>");
31                 }
32                 else if (getMain(parentid.ToString()) == "0")
33                 {
34                     mysb.Append("|&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;|_<a href=NewsType.aspx?id=" + dr["p_id"].ToString() + ">" + (string)dr["p_type"] + "</a><br>");
35                 }
36                 else
37                 {
38                     mysb.Append("|&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;|_<a href=NewsType.aspx?id=" + dr["p_id"].ToString() + ">" + (string)dr["p_type"] + "</a><br>");
39                 }
40                 CreateTreeViewRecursive(mysb, dataSource, Int32.Parse(dr["p_id"].ToString()));
41             }
42         }
43         #endregion

前台调用可以用label显示输出的结果。

效果截图:

原文地址:https://www.cnblogs.com/Chaser-Eagle/p/3684764.html