【发布时间】:2019-06-21 14:33:50
【问题描述】:
我使用递归函数为菜单动态生成以下结构。
<ul >
<li><a href="/en/">Home</a></li>
<li><a href="/en/">Menu 1</a></li>
<li><a href="/en/menu2/">Menu 2</a>
<ul>
<li><a href="">Menu 2.1</a></li>
<li><a href="">Menu 2.2</a></li>
</ul>
</li>
<li><a href="/en/menu3/">Menu 3</a></li>
<li><a href="/en/menu4/">Menu 4</a></li>
<li><a href="/en/menu5">Menu 5</a>
<ul >
<li><a href="">Menu 5.1</a></li>
<li><a href="">Menu 5.2</a></li>
</ul>
</li>
<li><a href="/en/menu6/">Menu 6</a></li>
</ul>
我想为父菜单和子菜单生成与单独的类相同的
<ul class="nav parent-menu">
<li><a href="/en/">Home</a></li>
<li><a href="/en/">Menu 1</a></li>
<li class="dropdown" ><a href="/en/menu2/">Menu 2</a>
<ul class="sub-menu">
<li><a href="">Menu 2.1</a></li>
<li><a href="">Menu 2.2</a></li>
</ul>
</li>
<li><a href="/en/menu3/">Menu 3</a></li>
<li><a href="/en/menu4/">Menu 4</a></li>
<li class="dropdown"><a href="/en/menu5">Menu 5</a>
<ul class="sub-menu">
<li><a href="">Menu 5.1</a></li>
<li><a href="">Menu 5.2</a></li>
</ul>
</li>
<li><a href="/en/menu6/">Menu 6</a></li>
</ul>
我需要添加三个不同的类nav parent-menuclass="dropdown"class="sub-menu"
C# 代码 不知道我应该在哪里更改代码以使其正常工作。
private string GenerateMenu(DataRow[] menu, DataTable table, StringBuilder sb)
{
sb.AppendLine("<ul class='nav navbar-nav'>");
if (menu.Length > 0)
{
foreach (DataRow dr in menu)
{
string menuName = dr["MenuName"].ToString();
string menuURL = dr["MenuURL"].ToString();
string line = string.Empty;
line = String.Format(@"<li><a href=" + menuURL + ">" + menuName + "</a>", handler, menuName);
sb.Append(line);
string pid = dr["MenuId"].ToString();
string parentId = dr["MenuInheritance"].ToString();
DataRow[] subMenu = table.Select(String.Format("MenuInheritance = {0}", pid));
if (subMenu.Length > 0 && !pid.Equals(parentId))
{
var subMenuBuilder = new StringBuilder();
sb.Append(GenerateMenu(subMenu, table, subMenuBuilder));
}
sb.Append("</li>");
}
}
sb.Append("</ul>");
return sb.ToString();
}
//Call Function
GenerateMobileUL(parentMenus, table, sbMobile);
表结构
MenuID
MenuName
MenuURL
MenuInheritance
MenuNewPage
【问题讨论】:
标签: c# html asp.net menu webforms