【发布时间】:2012-04-02 11:57:08
【问题描述】:
我必须从数据库中创建动态菜单。我使用了以下示例,该示例仅显示父菜单但不显示子菜单。 http://www.dotnetfunda.com/articles/article1477-how-to-create-a-menu-in-aspnet-using-aspmenu-control.aspx
我正在使用的代码 sn-p
<asp:Menu ID="Menu1" runat="server" Orientation="Horizontal" >
// I am convert ds to table for now.
DataTable table = dsMenu.Tables[0]; ;
DataView dvMenu = new DataView(table);
dvMenu.RowFilter = "PageInheritance is NULL";
foreach (DataRowView row in dvMenu)
{
MenuItem menuItem = new MenuItem(row["PageName"].ToString(), row["PageId"].ToString());
menuItem.NavigateUrl = row["PageURL"].ToString() + "?PageId=" + row["PageId"] + "&Language=" + sLangCode;
Menu1.Items.Add(menuItem);
AddChildItems(dvMenu.Table, menuItem);
}
//Function to look for child menu
private static void AddChildItems(DataTable table, MenuItem menuItem)
{
DataView viewItem = new DataView(table);
viewItem.RowFilter = "PageInheritance = " + menuItem.Value;
foreach (DataRowView childView in viewItem)
{
MenuItem childItem = new MenuItem(childView["PageName"].ToString(),
childView["PageId"].ToString());
childItem.NavigateUrl = childView["PageURL"].ToString();
menuItem.ChildItems.Add(childItem);
AddChildItems(table, childItem);
}
}
我不确定我做错了什么。根据我的数据库,它应该向我显示 xyz 行的子菜单。当为匹配子行调用 AddChildItems 函数时,它只是对循环进行技能处理,并且不显示子行中的任何内容。
输出当前代码
首页 |第2页|第 3 页 |第4页
它应该根据我的数据库向我显示 Page2 的子菜单。而是只显示上面的父页面链接。
【问题讨论】:
-
如果有人能告诉我上面的代码有什么问题,那就太好了..
-
你已经看到之前的回答stackoverflow.com/questions/3623818/…
标签: asp.net c#-4.0 menu webforms