模仿树形控件显示效果

本文介绍了一种使用C#在ASP.NET中构建树形数据结构的方法。通过递归查询数据库并构建字符串,最终生成HTML代码,实现树形结构的显示。此方法适用于新闻分类、产品分类等多层次数据展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建立树形结构:

 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值