0
我必須從數據庫創建動態菜單。我用下面的例子只顯示了父菜單,但沒有顯示子菜單。我使用在Asp.net中以編程方式生成菜單c#web表單
<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頁| Page 4
它應該根據我的數據庫顯示Page2的子菜單。相反,它只顯示上面的父頁面鏈接。
這將是巨大的,如果有人能告訴我什麼是錯的,上面的代碼.. – Learning 2012-04-02 13:47:38
你看前面的回答 http://stackoverflow.com/questions/3623818/creating-menus-動態功能於Web的應用程序/ 10225825 – Moiz 2012-04-19 10:17:11