更新时间:2023-09-29 08:10:46
尝试以下代码处理我的项目。将以下代码放在您的母版页中或放置菜单控件的位置。我在这里使用了List。您也可以使用相同的代码来使用数据表。 PopulateChildMenuItems 函数用于递归添加子菜单项
protected void Page_Load(object sender,EventArgs e)
{
if(HttpContext.Current.Session [UserDetails] == null)
{
Response.Redirect(〜/ Login.aspx);
}
if(!this.IsPostBack)
{
populateMenuItems() ;
}
}
protected void populateMenuItems()
{
userDetails =(UserBAL)(HttpContext.Current.Session [UserDetails]);
List< ; menubal> menuItems = CacheMaster.getMenuList(userDetails.UserID); //MenuDAL.getMenuList(userDetails.UserID);
List< menubal> parentMenuItems = menuItems.FindAll(x => x.ParentMenuID == 0);
foreach(parentMenuItems中的MenuBAL项目)
{
MenuItem mnuParent = new MenuItem();
//mnuParent.Target = item.MenuURL;
mnuParent.Text = item.MenuName;
mnuParent.NavigateUrl = item.MenuURL;
mnuParent.Value = item.MenuID.ToString();
populateChildItems(ref mnuParent,menuItems);
mnuMain.Items.Add(mnuParent);
}
}
protected void populateChildItems(ref MenuItem parentMenuItem,List< menubal> menuList)
{
Int32 parentMenuID = Convert.ToInt32(parentMenuItem.Value);
List< menubal> childItems = menuList.FindAll(x => x.ParentMenuID == parentMenuID);
foreach(childItems中的MenuBAL项目)
{
MenuItem childMenu = new MenuItem();
childMenu.Text = item.MenuName;
// childMenu.Target = item.MenuURL;
childMenu.NavigateUrl = item.MenuURL;
childMenu.Value = item.MenuID.ToString();
populateChildItems(ref childMenu,menuList);
parentMenuItem.ChildItems.Add(childMenu);
}
}
try the below code its working on my projects. Put the below code in your master page or where ever you have the menu control placed. I have used List here. You can use data table also using the same code. PopulateChildMenuItems function is called for recursively adding child menu items
protected void Page_Load(object sender, EventArgs e)
{
if (HttpContext.Current.Session["UserDetails"] == null)
{
Response.Redirect("~/Login.aspx");
}
if (!this.IsPostBack)
{
populateMenuItems();
}
}
protected void populateMenuItems()
{
userDetails = (UserBAL)(HttpContext.Current.Session["UserDetails"]);
List<menubal> menuItems = CacheMaster.getMenuList(userDetails.UserID); //MenuDAL.getMenuList(userDetails.UserID);
List<menubal> parentMenuItems = menuItems.FindAll(x => x.ParentMenuID == 0);
foreach (MenuBAL item in parentMenuItems)
{
MenuItem mnuParent = new MenuItem();
//mnuParent.Target = item.MenuURL;
mnuParent.Text = item.MenuName;
mnuParent.NavigateUrl = item.MenuURL;
mnuParent.Value = item.MenuID.ToString();
populateChildItems(ref mnuParent, menuItems);
mnuMain.Items.Add(mnuParent);
}
}
protected void populateChildItems(ref MenuItem parentMenuItem, List<menubal> menuList)
{
Int32 parentMenuID = Convert.ToInt32(parentMenuItem.Value);
List<menubal> childItems = menuList.FindAll(x => x.ParentMenuID == parentMenuID);
foreach (MenuBAL item in childItems)
{
MenuItem childMenu = new MenuItem();
childMenu.Text = item.MenuName;
//childMenu.Target = item.MenuURL;
childMenu.NavigateUrl = item.MenuURL;
childMenu.Value = item.MenuID.ToString();
populateChildItems(ref childMenu, menuList);
parentMenuItem.ChildItems.Add(childMenu);
}
}