[英]Generate Nested Menu from datatable using c# as ul list not Asp.net Menu control
[英]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.