嗨即時試圖解決這個問題,我獲取數據並創建菜單:現在數據庫從數據庫驅動的嵌套菜單在ASP.Net LINQ
if (Context.User.IsInRole("Admin") == true)
{
mnMenu.Items.Clear();
List<menuRole> menuParentList = new List<menuRole>();
List<MenuItem> menuItemList = new List<MenuItem>();
List<MenuItem> hoverItem = new List<MenuItem>();
int parentPosition = 0;
string menuName;
menuParentList = roles.getMenuItems().ToList();
for (int i = 0; i < menuParentList.Count; i++)
{
if (menuParentList[i].menuType == "Admin")
{
if (menuParentList[i].MenuRole1 == "parent")
{
menuName = menuParentList[i].menuName.ToString();
menuItemList[i].Text = menuName;
parentPosition = i;
}
else if (menuParentList[i].MenuRole1 == "child")
{
hoverItem[i].Text = menuParentList[i].menuName;
hoverItem[i].NavigateUrl = menuParentList[i].MenuLink;
menuItemList[i].ChildItems.Add(hoverItem[i]);
}
}
}
mnMenu.Items.Add(menuItemList[0]);
mnMenu.Items.Add(menuItemList[1]);
mnMenu.Items.Add(menuItemList[2]);
}
它給我這個異常的時刻:
System.ArgumentOutOfRangeException was unhandled by user code
Message=Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Source=mscorlib
ParamName=index
StackTrace:
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1.get_Item(Int32 index)
at PresentationLayer.UserControls.Menu.Page_Load(Object sender, EventArgs e) in C:\Users\Kurt\documents\visual studio 2010\Projects\aaa\PresentationLayer\UserControls\Menu.ascx.cs:line 44
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
你能指出44行? – 2011-12-31 11:53:59
menuItemList [i] .Text = menuName;這會添加父標題的名稱。 – Mazda 2011-12-31 11:57:46