Вам не нужно отслеживать страницу, используя переменные сеанса, так как при выборе элемента меню asp.net любезно отслеживает выбранный элемент и генерирует для вас собственный класс CSS (в большинстве случаев).Чтобы улучшить визуальную загрузку Firebug для Firefox и посмотреть вывод HTML, вы увидите, что к ним будут прикреплены стили CSS, такие как, например, «asp-net.menu selectedItem», затем вы создадите класс CSS .selectedItem {}, а затем он подберет стиль автоматически.
Однако, если я вспомню, это может быть немного неудобно, стилизовать элементы управления Microsoft, как будто вы проверяете исходный код на выходе, это не совсем подходит для HTML.
Если вы хотите стилизовать элемент меню с использованием подхода Microsoft, перейдите сюда http://msdn.microsoft.com/en-us/library/ms366731.aspx
Однако есть библиотека CSSfriendly http://cssfriendly.codeplex.com/, которая отображает элемент управления в чистом HTML, что позволяет гораздо проще присоединять CSS-классы.Например:
.CssAdapterMenu ul.AspNet-Menu /* Tier 1 */
{
width: 961px !important;
cursor:pointer;
background-color:#000000;
}
.CssAdapterMenu ul.AspNet-Menu ul /* Tier 2 */
{
left: 0;
background-color:#f8f8f8;
width: 145% !important;
max-width: 160px !important;
}
.CssAdapterMenu ul.AspNet-Menu ul li:hover /* Tier 2 cell */
{
background: #636363 url(../images/menu_bg_hover.png) no-repeat !important;
}
.CssAdapterMenu ul.AspNet-Menu ul .AspNet-Menu-Selected{
background: transparent url(../images/menu_bg_hover.png) no-repeat !important;
}
.CssAdapterMenu li.AspNet-Menu-WithChildren li .AspNet-Menu-ChildSelected {
background: transparent url(../images/menu_bg_hover.png) no-repeat !important;
}
И так далее, и тому подобное.Для этого есть хорошая документация и мой предпочтительный метод для стилизации.
Поправил ваш код, используя мои пояснения ниже.
<asp:Menu ID="mainMenu" runat="server" autopostback="true">
<Items>
<asp:MenuItem Text="Home" Value="Home" ></asp:MenuItem>
<asp:MenuItem Text="Pipes" Value="Pipes"></asp:MenuItem>
<asp:MenuItem Text="View & Query" Value="View & Query</asp:MenuItem>
<asp:MenuItem Text="API" Value="API"></asp:MenuItem>
</Items>
<StaticMenuItemStyle CssClass="menuItem" />
<StaticSelectedStyle CssClass="selectedItem" />
<StaticHoverStyle CssClass="hoverItem" />
</asp:Menu>
Затем в вашем CSS:
.normal{
background-color:#eaeaea;
}
.selected {
background-color:#000000;
}
.hover{
background-color:#FF0000;
}