Я работаю над проектом, который использует главную страницу и страницы контента.Моя главная страница - панель навигации:
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/ProjectPage.aspx" Text="Home" />
<asp:MenuItem NavigateUrl="~/ProductBacklog.aspx" Text="Product Backlog"/>
<asp:MenuItem NavigateUrl="~/SprintBacklog.aspx" Text="Sprint Backlog" />
<asp:MenuItem NavigateUrl="~/MeetingPage.aspx" Text="Meetings" />
<asp:MenuItem NavigateUrl="~/Burndown.aspx" Text="Burndown"/>
<asp:MenuItem NavigateUrl="~/About.aspx" Text="About Us"/>
</Items>
</asp:Menu>
На одной из моих страниц содержимого я динамически добавляю элементы меню подменю в свой элемент меню «Sprint Backlog».Есть кнопка, и каждый раз, когда пользователь нажимает эту кнопку, добавляется подменю, так что когда пользователь наводит курсор мыши на «Sprint Backlog» в меню навигации, появляется подменю.Я делаю это, создавая список пунктов меню, создавая новый элемент меню с помощью (отображаемый текст, значение, navigationURL), добавляя элемент меню в список элементов меню, затем сохраняя список в сеансе:
protected void btSave_Click(object sender, EventArgs e)
{
menuItemList = (List<MenuItem>)Session["menuItemList"];
if (menuItemList == null)
{
menuItemList = new List<MenuItem>();
}
MenuItem menuItem = new MenuItem("Sprint " + sprintNumber, sprintNumber.ToString(), "SprintBacklog.aspx");
menuItemList.Add(menuItem);
Session["menuItemList"] = menuItemList;
}
ВВ качестве кода для моей главной страницы я создаю список элементов меню, устанавливаю значение экземпляра элемента меню из сеанса и добавляю дочерние элементы в меню навигации по соответствующему индексу.Дочерний элемент, который я добавляю, - это элементы меню из списка элементов меню.
List<MenuItem> menuItemList;
protected void Page_Load(object sender, EventArgs e)
{
menuItemList = (List<MenuItem>)Session["menuItemList"];
if (menuItemList != null)
{
foreach (MenuItem menuitem in menuItemList)
{
NavigationMenu.Items[2].ChildItems.Add(menuitem);
}
}
}
Я знаю, что дал этим дочерним элементам значение при их создании, но моя проблема заключается в доступе к этим значениям при загрузке SprintBacklogСтраница содержимого .aspx.Когда пользователь нажимает на один из дочерних элементов, он всегда переходит к SprintBacklog.aspx, но содержимое этой страницы должно отличаться в зависимости от того, какой дочерний элемент он щелкнул.Мне нужен способ узнать, по какому дочернему элементу они щелкнули, и получить доступ к этому значению, чтобы заполнить мою страницу контента.
Если у кого-то есть лучший способ для меня выполнить все это, я открыт для предложений и изменений.В противном случае, если моя установка может работать, и у меня есть способ извлечь значение элемента clicked, я бы очень хотел это знать.
Я знаю, жестко ли я закодировал дочерние элементы в моемНа главной странице я могу легко получить значение, но моя проблема в том, что я динамически создаю дочерние элементы подменю, и я не уверен, как получить к нему доступ.
Любая помощь будет очень признательна!Спасибо!
-Jose