From e286264a833fe52862690ad06d72ad04df5c77dc Mon Sep 17 00:00:00 2001
From: huawei <huawei@2214094776>
Date: 星期三, 17 十二月 2025 16:06:20 +0800
Subject: [PATCH] 看板功能
---
Dto/Simple/BiViewDto.cs | 39 +++
appsettings.json | 2
Dto/Simple/ChildrenDto.cs | 35 ++
entity/MesSimpleCcb.cs | 40 +++
Controllers/Simple/SimpleController.cs | 127 ++++++++++
Dto/Simple/ResultDto.cs | 68 +++++
entity/MesSimple.cs | 64 +++++
service/Simple/SimpleManager.cs | 212 +++++++++++++++++
Dto/Simple/TreeViewDto.cs | 39 +++
Dto/Simple/MesSimpleDto.cs | 64 +++++
10 files changed, 689 insertions(+), 1 deletions(-)
diff --git a/Controllers/Simple/SimpleController.cs b/Controllers/Simple/SimpleController.cs
new file mode 100644
index 0000000..637df1e
--- /dev/null
+++ b/Controllers/Simple/SimpleController.cs
@@ -0,0 +1,127 @@
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.Simple;
+using NewPdaSqlServer.service.Simple;
+
+namespace NewPdaSqlServer.Controllers.Simple;
+
+/// <summary>
+/// 看板目录接口控制器
+/// 路由前缀: /simple (与Java版本完全一致)
+/// 实现与Java SimpleController完全相同的接口
+/// </summary>
+[Route("simple")]
+[ApiController]
+public class SimpleController : ControllerBase
+{
+ private readonly SimpleManager _simpleManager = new();
+
+ /// <summary>
+ /// 获取树形菜单
+ /// 对应Java: @PostMapping("/getTree")
+ /// </summary>
+ /// <returns>树形菜单数据</returns>
+ /// <remarks>
+ /// 请求示例:
+ /// POST /simple/getTree
+ /// Content-Type: application/json
+ ///
+ /// 返回数据结构:
+ /// {
+ /// "code": 0,
+ /// "msg": "请求成功",
+ /// "count": 2,
+ /// "data": [
+ /// {
+ /// "id": 1,
+ /// "title": "生产看板",
+ /// "field": "production",
+ /// "spread": true,
+ /// "children": [...]
+ /// }
+ /// ]
+ /// }
+ /// </remarks>
+ /// <response code="200">成功获取树形菜单</response>
+ [HttpPost("getTree")]
+ public ResultDto<List<TreeViewDto>> GetTree()
+ {
+ return _simpleManager.GetTree();
+ }
+
+ /// <summary>
+ /// 获取菜单列表
+ /// 对应Java: @PostMapping("/list")
+ /// 注意: 此接口已基本废弃,前端改用树形菜单方式展示
+ /// </summary>
+ /// <returns>菜单列表数据</returns>
+ /// <remarks>
+ /// 请求示例:
+ /// POST /simple/list
+ /// Content-Type: application/json
+ ///
+ /// 返回数据结构:
+ /// {
+ /// "code": 0,
+ /// "msg": "请求成功",
+ /// "count": 5,
+ /// "data": [
+ /// {
+ /// "id": 1,
+ /// "isTop": 1,
+ /// "fid": 0,
+ /// "title": "生产效率看板",
+ /// "field": "efficiency",
+ /// "href": "http://bi.example.com/dashboard1",
+ /// "spread": 0,
+ /// "disabled": 0,
+ /// "lbtime": 10
+ /// }
+ /// ]
+ /// }
+ /// </remarks>
+ /// <response code="200">成功获取菜单列表</response>
+ [HttpPost("list")]
+ public ResultDto<List<MesSimpleDto>> GetList()
+ {
+ return _simpleManager.GetMenuList();
+ }
+
+ /// <summary>
+ /// 根据菜单ID获取BI视图列表
+ /// 对应Java: @GetMapping("/listByMenuId/{menuId}")
+ /// 核心接口:用于获取轮播页面的BI看板链接列表
+ /// </summary>
+ /// <param name="menuId">菜单ID (路径参数)</param>
+ /// <returns>BI视图列表</returns>
+ /// <remarks>
+ /// 请求示例:
+ /// GET /simple/listByMenuId/102
+ ///
+ /// 返回数据结构:
+ /// {
+ /// "code": 0,
+ /// "msg": "请求成功",
+ /// "count": 3,
+ /// "data": [
+ /// {
+ /// "id": 1001,
+ /// "pid": 102,
+ /// "name": "质量趋势分析",
+ /// "href": "http://bi.example.com/quality/trend",
+ /// "lbtime": 10
+ /// }
+ /// ]
+ /// }
+ ///
+ /// 业务说明:
+ /// - 返回指定菜单下所有的BI看板链接
+ /// - lbtime字段从父菜单继承(MES_SIMPLE表)
+ /// - 前端使用此数据创建iframe进行轮播展示
+ /// </remarks>
+ /// <response code="200">成功获取BI视图列表</response>
+ [HttpGet("listByMenuId/{menuId}")]
+ public ResultDto<List<BiViewDto>> GetBiViews(int menuId)
+ {
+ return _simpleManager.GetBiViewsByMenuId(menuId);
+ }
+}
diff --git a/Dto/Simple/BiViewDto.cs b/Dto/Simple/BiViewDto.cs
new file mode 100644
index 0000000..23cc5b5
--- /dev/null
+++ b/Dto/Simple/BiViewDto.cs
@@ -0,0 +1,39 @@
+using Newtonsoft.Json;
+
+namespace NewPdaSqlServer.Dto.Simple;
+
+/// <summary>
+/// BI瑙嗗浘DTO - 鐢ㄤ簬杞挱椤甸潰鐨勮鍥炬暟鎹�
+/// </summary>
+public class BiViewDto
+{
+ /// <summary>
+ /// BI瑙嗗浘涓婚敭ID
+ /// </summary>
+ [JsonProperty("id")]
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 鎵�灞炵埗鑿滃崟ID
+ /// </summary>
+ [JsonProperty("pid")]
+ public int? Pid { get; set; }
+
+ /// <summary>
+ /// BI瑙嗗浘鍚嶇О
+ /// </summary>
+ [JsonProperty("name")]
+ public string? Name { get; set; }
+
+ /// <summary>
+ /// BI鐪嬫澘鐨勫畬鏁碪RL鍦板潃
+ /// </summary>
+ [JsonProperty("href")]
+ public string? Href { get; set; }
+
+ /// <summary>
+ /// 杞挱鏃堕棿闂撮殧(绉�)
+ /// </summary>
+ [JsonProperty("lbtime")]
+ public int? Lbtime { get; set; }
+}
diff --git a/Dto/Simple/ChildrenDto.cs b/Dto/Simple/ChildrenDto.cs
new file mode 100644
index 0000000..12ca976
--- /dev/null
+++ b/Dto/Simple/ChildrenDto.cs
@@ -0,0 +1,35 @@
+using Newtonsoft.Json;
+
+namespace NewPdaSqlServer.Dto.Simple;
+
+/// <summary>
+/// 子菜单项 - 树形结构的子节点
+/// </summary>
+public class ChildrenDto
+{
+ /// <summary>
+ /// 子菜单ID
+ /// </summary>
+ [JsonProperty("id")]
+ public long Id { get; set; }
+
+ /// <summary>
+ /// 子菜单名称
+ /// </summary>
+ [JsonProperty("title")]
+ public string? Title { get; set; }
+
+ /// <summary>
+ /// 英文标识
+ /// </summary>
+ [JsonProperty("field")]
+ public string? Field { get; set; }
+
+ /// <summary>
+ /// 跳转链接
+ /// 如果值为"轮播",则自动生成bi_view.html链接
+ /// 否则使用数据库中配置的原始href
+ /// </summary>
+ [JsonProperty("href")]
+ public string? Href { get; set; }
+}
diff --git a/Dto/Simple/MesSimpleDto.cs b/Dto/Simple/MesSimpleDto.cs
new file mode 100644
index 0000000..7164606
--- /dev/null
+++ b/Dto/Simple/MesSimpleDto.cs
@@ -0,0 +1,64 @@
+using Newtonsoft.Json;
+
+namespace NewPdaSqlServer.Dto.Simple;
+
+/// <summary>
+/// 菜单实体DTO - 用于列表展示
+/// 与Java版本MesSimplesimple字段完全一致
+/// </summary>
+public class MesSimpleDto
+{
+ /// <summary>
+ /// 自增主键ID
+ /// </summary>
+ [JsonProperty("id")]
+ public long Id { get; set; }
+
+ /// <summary>
+ /// 是否为根节点 (0表示为根节点)
+ /// </summary>
+ [JsonProperty("isTop")]
+ public int? IsTop { get; set; }
+
+ /// <summary>
+ /// 父节点id
+ /// </summary>
+ [JsonProperty("fid")]
+ public long? Fid { get; set; }
+
+ /// <summary>
+ /// 名称
+ /// </summary>
+ [JsonProperty("title")]
+ public string? Title { get; set; }
+
+ /// <summary>
+ /// 英文名
+ /// </summary>
+ [JsonProperty("field")]
+ public string? Field { get; set; }
+
+ /// <summary>
+ /// 地址
+ /// </summary>
+ [JsonProperty("href")]
+ public string? Href { get; set; }
+
+ /// <summary>
+ /// 节点是否初始展开 (0为不展开,1为展开)
+ /// </summary>
+ [JsonProperty("spread")]
+ public int? Spread { get; set; }
+
+ /// <summary>
+ /// 节点是否为展示 (0为展示,1为不展示)
+ /// </summary>
+ [JsonProperty("disabled")]
+ public int? Disabled { get; set; }
+
+ /// <summary>
+ /// 轮播时间(秒)
+ /// </summary>
+ [JsonProperty("lbtime")]
+ public int? Lbtime { get; set; }
+}
diff --git a/Dto/Simple/ResultDto.cs b/Dto/Simple/ResultDto.cs
new file mode 100644
index 0000000..96bed90
--- /dev/null
+++ b/Dto/Simple/ResultDto.cs
@@ -0,0 +1,68 @@
+using Newtonsoft.Json;
+
+namespace NewPdaSqlServer.Dto.Simple;
+
+/// <summary>
+/// 缁熶竴杩斿洖缁撴灉灏佽 - 涓嶫ava鐗堟湰瀹屽叏鍏煎
+/// 瀛楁鍚嶄娇鐢╟ode/msg/count/data浠ヤ繚鎸佸墠绔吋瀹�
+/// </summary>
+/// <typeparam name="T">鏁版嵁绫诲瀷</typeparam>
+public class ResultDto<T>
+{
+ /// <summary>
+ /// 鐘舵�佺爜: 0=鎴愬姛, 500=澶辫触
+ /// </summary>
+ [JsonProperty("code")]
+ public int Code { get; set; }
+
+ /// <summary>
+ /// 杩斿洖娑堟伅
+ /// </summary>
+ [JsonProperty("msg")]
+ public string? Msg { get; set; }
+
+ /// <summary>
+ /// 杩斿洖鐨勬暟鎹�
+ /// </summary>
+ [JsonProperty("data")]
+ public T? Data { get; set; }
+
+ /// <summary>
+ /// 鏁版嵁鎬绘暟
+ /// </summary>
+ [JsonProperty("count")]
+ public int Count { get; set; }
+
+ /// <summary>
+ /// 鎴愬姛杩斿洖
+ /// </summary>
+ /// <param name="data">鏁版嵁</param>
+ /// <param name="count">鏁版嵁鎬绘暟</param>
+ /// <returns>鎴愬姛缁撴灉</returns>
+ public static ResultDto<T> Ok(T data, int count)
+ {
+ return new ResultDto<T>
+ {
+ Code = 0,
+ Msg = "璇锋眰鎴愬姛",
+ Data = data,
+ Count = count
+ };
+ }
+
+ /// <summary>
+ /// 澶辫触杩斿洖
+ /// </summary>
+ /// <param name="message">閿欒淇℃伅</param>
+ /// <returns>澶辫触缁撴灉</returns>
+ public static ResultDto<T> Error(string message)
+ {
+ return new ResultDto<T>
+ {
+ Code = 500,
+ Msg = message,
+ Data = default,
+ Count = 0
+ };
+ }
+}
diff --git a/Dto/Simple/TreeViewDto.cs b/Dto/Simple/TreeViewDto.cs
new file mode 100644
index 0000000..c5a0423
--- /dev/null
+++ b/Dto/Simple/TreeViewDto.cs
@@ -0,0 +1,39 @@
+using Newtonsoft.Json;
+
+namespace NewPdaSqlServer.Dto.Simple;
+
+/// <summary>
+/// 鏍戝舰瑙嗗浘 - 鐢ㄤ簬Layui Tree缁勪欢娓叉煋
+/// </summary>
+public class TreeViewDto
+{
+ /// <summary>
+ /// 鑿滃崟椤笽D
+ /// </summary>
+ [JsonProperty("id")]
+ public long Id { get; set; }
+
+ /// <summary>
+ /// 鑿滃崟鏄剧ず鍚嶇О
+ /// </summary>
+ [JsonProperty("title")]
+ public string? Title { get; set; }
+
+ /// <summary>
+ /// 鑿滃崟鑻辨枃鏍囪瘑
+ /// </summary>
+ [JsonProperty("field")]
+ public string? Field { get; set; }
+
+ /// <summary>
+ /// 鏄惁榛樿灞曞紑瀛愯妭鐐�
+ /// </summary>
+ [JsonProperty("spread")]
+ public bool Spread { get; set; }
+
+ /// <summary>
+ /// 瀛愯彍鍗曞垪琛�
+ /// </summary>
+ [JsonProperty("children")]
+ public List<ChildrenDto>? Children { get; set; }
+}
diff --git a/appsettings.json b/appsettings.json
index 13b877d..5e8a67e 100644
--- a/appsettings.json
+++ b/appsettings.json
@@ -10,7 +10,7 @@
"TestErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest",
"ProductionErpUrl": "http://192.168.1.149:8066/WebService1.asmx/MesToErpinfoTest",
//"DataBaseConn": "Data Source=192.168.1.146,12468;Initial Catalog=TEST_MES;User ID=testUser;Password =qixi1qaz@WSXtest;Encrypt=True;TrustServerCertificate=True;"
- "DataBaseConn": "Data Source=192.168.8.8;Initial Catalog=YS_MES;User ID=sa;Password =JianHui@2025;Encrypt=True;TrustServerCertificate=True;"
+ "DataBaseConn": "Data Source=192.168.8.8;Initial Catalog=GS_MES;User ID=sa;Password =JianHui@2025;Encrypt=True;TrustServerCertificate=True;"
},
"Version": "1.0.0",
"X-KDApi-AcctID": "6244701c616bff",
diff --git a/entity/MesSimple.cs b/entity/MesSimple.cs
new file mode 100644
index 0000000..46377f8
--- /dev/null
+++ b/entity/MesSimple.cs
@@ -0,0 +1,64 @@
+using SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+/// 菜单维护表
+/// </summary>
+[SugarTable("MES_SIMPLE")]
+public class MesSimple
+{
+ /// <summary>
+ /// 自增列主键
+ /// </summary>
+ [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)]
+ public long Id { get; set; }
+
+ /// <summary>
+ /// 是否为根节点 (0表示为根节点)
+ /// </summary>
+ [SugarColumn(ColumnName = "is_top")]
+ public int? IsTop { get; set; }
+
+ /// <summary>
+ /// 父节点id
+ /// </summary>
+ [SugarColumn(ColumnName = "fid")]
+ public long? Fid { get; set; }
+
+ /// <summary>
+ /// 名称
+ /// </summary>
+ [SugarColumn(ColumnName = "title")]
+ public string? Title { get; set; }
+
+ /// <summary>
+ /// 英文名
+ /// </summary>
+ [SugarColumn(ColumnName = "field")]
+ public string? Field { get; set; }
+
+ /// <summary>
+ /// 地址
+ /// </summary>
+ [SugarColumn(ColumnName = "href")]
+ public string? Href { get; set; }
+
+ /// <summary>
+ /// 节点是否初始展开 (0为不展开,1为展开)
+ /// </summary>
+ [SugarColumn(ColumnName = "spread")]
+ public int? Spread { get; set; }
+
+ /// <summary>
+ /// 节点是否为展示 (0为展示,1为不展示)
+ /// </summary>
+ [SugarColumn(ColumnName = "disabled")]
+ public int? Disabled { get; set; }
+
+ /// <summary>
+ /// 轮播时间(秒)
+ /// </summary>
+ [SugarColumn(ColumnName = "lbtime")]
+ public int? Lbtime { get; set; }
+}
diff --git a/entity/MesSimpleCcb.cs b/entity/MesSimpleCcb.cs
new file mode 100644
index 0000000..364d7bd
--- /dev/null
+++ b/entity/MesSimpleCcb.cs
@@ -0,0 +1,40 @@
+using SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+/// BI视图表 - 存储每个菜单下具体的BI看板链接
+/// </summary>
+[SugarTable("MES_SIMPLE_CCB")]
+public class MesSimpleCcb
+{
+ /// <summary>
+ /// 主键ID
+ /// </summary>
+ [SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 父节点ID (关联MES_SIMPLE.id)
+ /// </summary>
+ [SugarColumn(ColumnName = "pid")]
+ public int? Pid { get; set; }
+
+ /// <summary>
+ /// BI视图名称
+ /// </summary>
+ [SugarColumn(ColumnName = "name")]
+ public string? Name { get; set; }
+
+ /// <summary>
+ /// BI看板完整URL地址
+ /// </summary>
+ [SugarColumn(ColumnName = "href")]
+ public string? Href { get; set; }
+
+ /// <summary>
+ /// 轮播时间(秒) - 实际使用时会被父菜单的lbtime覆盖
+ /// </summary>
+ [SugarColumn(ColumnName = "lbtime")]
+ public int? Lbtime { get; set; }
+}
diff --git a/service/Simple/SimpleManager.cs b/service/Simple/SimpleManager.cs
new file mode 100644
index 0000000..91c46a2
--- /dev/null
+++ b/service/Simple/SimpleManager.cs
@@ -0,0 +1,212 @@
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.Simple;
+using NewPdaSqlServer.entity;
+using SqlSugar;
+
+namespace NewPdaSqlServer.service.Simple;
+
+/// <summary>
+/// 看板菜单业务管理器
+/// 实现与Java版本MesSimpleServiceImpl完全一致的业务逻辑
+/// </summary>
+public class SimpleManager : Repository<MesSimple>
+{
+ /// <summary>
+ /// 获取树形菜单
+ /// 对应Java: getTree()
+ /// </summary>
+ /// <returns>树形菜单数据</returns>
+ public ResultDto<List<TreeViewDto>> GetTree()
+ {
+ try
+ {
+ var tree = ToTree();
+ return ResultDto<List<TreeViewDto>>.Ok(tree, tree.Count);
+ }
+ catch (Exception ex)
+ {
+ return ResultDto<List<TreeViewDto>>.Error(ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// 转换为树形结构
+ /// 对应Java: toTree()
+ /// </summary>
+ /// <returns>树形视图列表</returns>
+ public List<TreeViewDto> ToTree()
+ {
+ return ConvertToTreeViewList(GetTopList());
+ }
+
+ /// <summary>
+ /// 获取菜单列表
+ /// 对应Java: getMenuList()
+ /// 查询条件: disabled=0 且 isTop>0 (排除根节点)
+ /// </summary>
+ /// <returns>菜单列表</returns>
+ public ResultDto<List<MesSimpleDto>> GetMenuList()
+ {
+ try
+ {
+ var list = Db.Queryable<MesSimple>()
+ .Where(m => m.Disabled == 0 && m.IsTop > 0)
+ .Select(m => new MesSimpleDto
+ {
+ Id = m.Id,
+ IsTop = m.IsTop,
+ Fid = m.Fid,
+ Title = m.Title,
+ Field = m.Field,
+ Href = m.Href,
+ Spread = m.Spread,
+ Disabled = m.Disabled,
+ Lbtime = m.Lbtime
+ })
+ .ToList();
+
+ return ResultDto<List<MesSimpleDto>>.Ok(list, list.Count);
+ }
+ catch (Exception ex)
+ {
+ return ResultDto<List<MesSimpleDto>>.Error(ex.Message);
+ }
+ }
+
+ /// <summary>
+ /// 根据菜单ID获取BI视图列表
+ /// 对应Java: getBiViewsByMenuId()
+ /// </summary>
+ /// <param name="menuId">菜单ID</param>
+ /// <returns>BI视图列表</returns>
+ public ResultDto<List<BiViewDto>> GetBiViewsByMenuId(int menuId)
+ {
+ try
+ {
+ // 查询指定菜单下的所有BI视图
+ var list = Db.Queryable<MesSimpleCcb>()
+ .Where(b => b.Pid == menuId && b.Href != null)
+ .Select(b => new BiViewDto
+ {
+ Id = b.Id,
+ Pid = b.Pid,
+ Name = b.Name,
+ Href = b.Href,
+ Lbtime = b.Lbtime
+ })
+ .ToList();
+
+ // 如果有数据,获取父菜单的轮播时间配置并赋值给所有BI视图
+ if (list.Count > 0)
+ {
+ var simple = Db.Queryable<MesSimple>()
+ .Where(m => m.Id == menuId)
+ .First();
+
+ if (simple != null)
+ {
+ // 将父菜单的lbtime赋值给所有BI视图
+ list.ForEach(biView => biView.Lbtime = simple.Lbtime);
+ }
+ }
+
+ return ResultDto<List<BiViewDto>>.Ok(list, list.Count);
+ }
+ catch (Exception ex)
+ {
+ return ResultDto<List<BiViewDto>>.Error(ex.Message);
+ }
+ }
+
+ #region 私有方法
+
+ /// <summary>
+ /// 获取根节点列表
+ /// 查询条件: isTop=0 且 disabled=0
+ /// </summary>
+ /// <returns>根节点列表</returns>
+ private List<MesSimple> GetTopList()
+ {
+ return Db.Queryable<MesSimple>()
+ .Where(m => m.IsTop == 0 && m.Disabled == 0)
+ .ToList();
+ }
+
+ /// <summary>
+ /// 转换为树形视图列表
+ /// 对应Java: convertToTreeViewList()
+ /// 使用并行处理提升性能
+ /// </summary>
+ /// <param name="mesSimpleList">根节点列表</param>
+ /// <returns>树形视图列表</returns>
+ private List<TreeViewDto> ConvertToTreeViewList(List<MesSimple> mesSimpleList)
+ {
+ // 使用Parallel.ForEach实现并行处理,类似Java的CompletableFuture
+ var treeViews = new List<TreeViewDto>();
+ var lockObj = new object();
+
+ Parallel.ForEach(mesSimpleList, mesSimple =>
+ {
+ var treeView = ConvertToTreeView(mesSimple);
+ lock (lockObj)
+ {
+ treeViews.Add(treeView);
+ }
+ });
+
+ return treeViews;
+ }
+
+ /// <summary>
+ /// 转换单个菜单项为树形视图
+ /// 对应Java: convertToTreeView()
+ /// </summary>
+ /// <param name="mesSimple">菜单实体</param>
+ /// <returns>树形视图</returns>
+ private TreeViewDto ConvertToTreeView(MesSimple mesSimple)
+ {
+ var treeView = new TreeViewDto
+ {
+ Id = mesSimple.Id,
+ Title = mesSimple.Title,
+ Field = mesSimple.Field,
+ Spread = mesSimple.Spread == 1
+ };
+
+ // 查询子节点
+ var childList = Db.Queryable<MesSimple>()
+ .Where(m => m.Disabled == 0 && m.Fid == mesSimple.Id)
+ .ToList();
+
+ // 转换子节点
+ var childrenList = new List<ChildrenDto>();
+ foreach (var child in childList)
+ {
+ var children = new ChildrenDto
+ {
+ Id = child.Id,
+ Title = child.Title,
+ Field = child.Field
+ };
+
+ // 处理href字段
+ // 如果href值为"轮播",则自动生成轮播页面链接
+ if ("轮播".Equals(child.Href))
+ {
+ children.Href = $"bi_view.html?menuId={child.Id}&lbsj={child.Lbtime}";
+ }
+ else
+ {
+ children.Href = child.Href;
+ }
+
+ childrenList.Add(children);
+ }
+
+ treeView.Children = childrenList;
+
+ return treeView;
+ }
+
+ #endregion
+}
--
Gitblit v1.9.3