簡體   English   中英

使用asp從數據庫生成菜單:菜單控件無法正常工作

[英]Generate Menu from the database using asp:Menu control programatically not working

我正在嘗試使用以下示例從數據庫創建動態菜單:http://www.dotnetfunda.com/articles/article1477-how-to-create-a-menu-in-aspnet-using-aspmenu-control.aspx

我修改了下面發布的代碼,僅顯示父菜單,但不顯示子菜單,我確定調試代碼時出了點問題,我注意到它沒有進入AddChildItems函數的foreach(dvMenu中的DataRowView行)

我的SQL查詢就像

Select PageID, PageName,PageInternalLinkURL, PageInheritance from pg_Pages

我正在使用的代碼段

<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);
        }
    }

我不確定自己在做什么錯。 根據我的數據庫,應該向我顯示第Page2行的子菜單。 當為匹配的子行調用AddChildItems函數時,它只是對循環進行技巧訓練,而不會顯示子行中的任何內容。

使用當前代碼輸出

主頁| Page2 | 第3頁 第4頁

答案代碼或邏輯沒什么不對,是因為SQL查詢在修復了像魅力一樣的查詢后得到了錯誤的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM