我在网站上创建子菜单时遇到问题
我有2个MSSQL数据库表:
万维网
分类
我的foreach
sb.Append("<ul class=\"Menu\">");
foreach (WWW item in WWW.Fetch(null, null, null))
{
if (item.Active)
{
//All pages that doesnt have a categorie
if (!item.Categorie.ID.HasValue)
{
sb.AppendFormat("<li><a href=\"page?id={1}\">{0}</a></li>", item.Name, item.ID.ToString());
}
//All pages that have a categorie
if (item.Categorie.ID.HasValue)
{
//Split different categories.
if (CAT != item.Categorie.Name)
{
CAT = item.Categorie.Name;
sb.AppendFormat("<li><a href=\"page?id={1}\">{0}</a></li>", item.Categorie.Name, item.ID.ToString());
}
}
}
CAT = "";
}
sb.Append("</ul>");
Run Code Online (Sandbox Code Playgroud)
我失去了我需要创建开始UL和关闭UL的地方,我什么时候需要重置我的String CAT.谢谢
我不太确定你的菜单的结构是什么,因为你没有一个很好的例子。但是,如果您正在做类似的事情:
<ul>
<li>Category</li>
<li>Catefory
<ul>
<li>Page</li>
</ul>
</li>
<\ul>
Run Code Online (Sandbox Code Playgroud)
那么你需要做类似的事情:
sb.Append("<ul class=\"Menu\">");
foreach (Categories category in Categories.Fetch(null, null, null))
{
if (category.Active)
{
sb.AppendFormat("<li><a href=\"page?id={1}\">{0}</a>", category.Name, category.ID.ToString());
var pages = WWW.Fetch(p => p.Categorie.ID.Equals(category.ID));
if(pages.Any()) {
sb.Append("<ul>");
foreach(WWW page in pages) {
sb.AppendFormat("<li><a href=\"page?id={1}\">{0}</a></li>", page.Name, page.ID.ToString());
}
sb.Append("</ul>");
}
sb.Append("</li>");
}
}
sb.Append("</ul>");
Run Code Online (Sandbox Code Playgroud)
我意识到这很可能并不完全满足您的需求,但应该是菜单背后逻辑的一个很好的例子。如果您可以在类别和 WWW 表如何表示数据的背后填写更多详细信息,以及您的预期输出的示例,我相信我可以附加一个更具体的示例。
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |