У меня есть следующий элемент управления меню, встроенный в файл Site.master :
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" RenderingMode="List">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home" />
<asp:MenuItem NavigateUrl="~/TechServices.aspx" Text="Tech Services"/>
<asp:MenuItem NavigateUrl="~/HumanResources.aspx" Text="Human Resources"/>
<asp:MenuItem NavigateUrl="~/Marketing.aspx" Text="Marketing"/>
<asp:MenuItem NavigateUrl="~/DocumentControl.aspx" Text="Document Control"/>
<asp:MenuItem NavigateUrl="~/IT.aspx" Text="Information Tech"/>
</Items>
</asp:Menu>
Чтобы установить атрибут класса CSS selected Я использую следующий код C #:
protected void Page_Load(object sender, EventArgs e) {
string thispage = this.Page.AppRelativeVirtualPath;
int slashpos = thispage.LastIndexOf('/');
string pagename = thispage.Substring(slashpos + 1);
foreach (MenuItem mi in NavigationMenu.Items) {
if (mi.NavigateUrl.Contains(pagename)) {
mi.Selected = true;
break;
}
}
}
Код выше прекрасно работает.Однако эти страницы теперь содержат подстраницы (дочерние), и я хотел бы, чтобы родительские страницы сохраняли свой атрибут "Выбранный" CSS при доступе к одной из их дочерних страниц.
Я также создал Web.sitemap Файл для организации всех родительских и их дочерних страниц.Тем не менее, я в курсе того, как использовать Web.sitemap, чтобы помочь вышеуказанной функции C #, чтобы помочь родительскому меню сохранить свой атрибут CSS "selected" класса.Я не уверен, нужен ли мне файл Web.sitemap для этой цели?Родительская и дочерняя логика доступны только в файле Web.sitemap.