建立树形结构:
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("| |_<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("| | |_<a href=NewsType.aspx?id=" + dr["p_id"].ToString() + ">" + (string)dr["p_type"] + "</a><br>"); 35 } 36 else 37 { 38 mysb.Append("| | | |_<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显示输出的结果。
效果截图: