111,092
社区成员




ID MENU_NAME PARENT_ID URL ICON ORDER
1 系统设置 0 NULL NULL 1
2 其他设置 1 NULL NULL 2
3 用户管理 1 User/Index NULL 3
4 测试设置 2 OtherTest/Index NULL 4
@if (menus != null)
{
foreach (var module in menus.OrderBy(x => x.ORDER).Where(o => o.PARENT_ID == "0"))
{
<li>
<a href="#">
<i class="@(string.IsNullOrWhiteSpace(module.ICON) ? "fa fa-tv" : module.ICON)"></i>
<span class="nav-label">@module.MENU_NAME</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-second-level">
@foreach (var menu in menus.OrderBy(x => x.ORDER).Where(item => item.PARENT_ID == module.ID))
{
<li>
<a class="J_menuItem" href="@menu.URL" data-index="@module.ID">
<i class="@(string.IsNullOrWhiteSpace(module.ICON) ? "fa fa-angle-right" : menu.ICON)"></i>
@menu.MENU_NAME
</a>
</li>
}
</ul>
</li>
}
}
var menus = BllHelper.GetList<T_SYS_MENU_INFO>(DBTool.SqlServerMS_Tool);
lstMenus = menus;
T_SYS_MENU_INFO menu = new T_SYS_MENU_INFO();
menu.NavMenus = new List<T_SYS_MENU_INFO>();
CreateMenu(menu, "0");
ViewBag.Menu = menu;
private void CreateMenu(T_SYS_MENU_INFO menu,string id)
{
var lst = lstMenus.Where(x => x.PARENT_ID == id).OrderBy(x => x.SORT);
foreach (var item in lst)
{
T_SYS_MENU_INFO t = new T_SYS_MENU_INFO();
t.ID = item.ID;
t.MENU_NAME = item.MENU_NAME;
t.URL = item.URL;
t.ICON = item.ICON;
t.NavMenus = new List<T_SYS_MENU_INFO>();
CreateMenu(t, item.ID);
menu.NavMenus.Add(t);
}
}
@model Domain.Entity.Sys.T_SYS_MENU_INFO
@foreach (var item in Model.NavMenus)
{
if (item.URL == "#" || string.IsNullOrEmpty(item.URL))//
{
<li>
<a href="#">
<i class="@(string.IsNullOrWhiteSpace(item.ICON) ? "fa fa-tv" : item.ICON)"></i>
<span class="nav-label">@item.MENU_NAME</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-second-level">
@await Html.PartialAsync("_NavMenu", item);
</ul>
</li>
}
else //操作项
{
<li>
<a class="J_menuItem" href="@item.URL" data-index="@item.ID">
<i class="@(string.IsNullOrWhiteSpace(item.ICON)? "fa fa-angle-right" : item.ICON)"></i>
@item.MENU_NAME
</a>
</li>
}
}
@{
Domain.Entity.Sys.T_SYS_MENU_INFO menu = ViewBag.Menu;
}
@await Html.PartialAsync("_NavMenu", menu);
/// <summary>
/// 生成菜单拼接字符串
/// </summary>
/// <returns></returns>
private string GenerateMenu()
{
StringBuilder sb = new StringBuilder();
var lstAll = BllHelper.GetList<T_SYS_MENU_INFO>(DBTool.SqlServerMS_Tool);
var lstParent = lstAll.FindAll(x => x.PARENT_ID == "0").ToList();
var lstChilds = lstAll.FindAll(x => x.PARENT_ID != "0").ToList();
if (lstParent.Any())
{
foreach (var top in lstParent)
{
sb.AppendLine("<li>")
.AppendLine("<a href = \"#\" >")
.AppendFormat("<i class=\"{0}\"></i>", (string.IsNullOrWhiteSpace(top.ICON) ? "fa fa-tv" : top.ICON))
.AppendFormat("<span class=\"nav-label\">{0}</span>", top.MENU_NAME)
.AppendLine("<span class=\"fa arrow\"></span>")
.AppendLine("</a>")
.AppendLine("<ul class=\"nav nav - second - level\">");
var lstOnes = lstChilds.FindAll(x => x.PARENT_ID == top.ID).OrderBy(x => x.ORDER).ToList();
GetChild(sb, lstChilds, lstOnes);
sb.AppendLine("</ul></li>");
}
}
return sb.ToString();
}
/// <summary>
/// 得到子菜单项
/// </summary>
/// <param name="sb">StrignBuilder对象</param>
/// <param name="lstChilds">所有子节点集合</param>
/// <param name="lstOnes">“父”节点集合</param>
private void GetChild(StringBuilder sb, List<T_SYS_MENU_INFO> lstChilds, List<T_SYS_MENU_INFO> lstOnes)
{
foreach (var chld in lstOnes)
{
var lstTwos = lstChilds.FindAll(x => x.PARENT_ID == chld.ID).OrderBy(x => x.ORDER).ToList();
sb.AppendLine("<li>")
.AppendFormat("<a class=\"J_menuItem\" href=\"{0}\" data-index=\"{1}\">", chld.URL, chld.ID)
.AppendFormat("<i class=\"\"></i>", (string.IsNullOrWhiteSpace(chld.ICON) ? "fa fa-angle-right" : chld.ICON))
.AppendLine(chld.MENU_NAME)
.AppendLine("</a></li>");
GetChild(sb, lstChilds, lstTwos);
}
}