#c# #asp.net #menubar
#c# #asp.net #строка меню
Вопрос:
Я создал веб-приложение, используя ASP.NET Visual Studio 2010 с основными страницами. Как вы увидите, проект предоставляет нам элемент строки меню по умолчанию. У меня есть 5 страниц (ссылок), перечисленных в этих строках меню. Теперь, когда пользователь переходит на определенную страницу, я хочу выделить ссылку на эту строку меню. Я не знаю, как это сделать: (
Я попробовал это в коде главной страницы, но это тоже не сработало:
foreach (MenuItem item in NavigationMenu.Items)
{
var navigateUrlParams = item.NavigateUrl.Split('/');
if (Request.Url.AbsoluteUri.IndexOf(navigateUrlParams[navigateUrlParams.Length - 1]) != -1)
{
item.Selected = true;
}
}
И в моем представлении разметки у меня есть это:
<div class="clear hideSkiplink">
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" OnMenuItemClick="NavigationMenu_MenuItemClick">
<Items>
<asp:MenuItem Text="Test1"/>
<asp:MenuItem Text="Test2"/>
<asp:MenuItem Text="Test3"/>
</Items>
</asp:Menu>
</div>
Итак, в принципе, всякий раз, когда пользователь заходит на страницу Test1.aspx, я хочу, чтобы пункт меню Test1 был выделен. Как я должен это сделать?
Любая помощь будет оценена! Спасибо…
Ответ №1:
Используйте классы ссылок CSS для реализации этого:
http://www.w3schools.com/css/sel_active.asp
И если вам «не нужно» делать что-то программное для этих элементов ссылок, используйте вместо этого привязочные ссылки HTML. Создайте их как элементы списка:
<ul class="menu">
<li>
<a href="~/Home" id="link1" title="First Link" runat="server">Link 1</a>
</li>
</ul>
Я хочу спросить, нужны ли здесь элементы управления (не знакомые с вашим проектом), и по возможности упростить разметку.
Ответ №2:
Сначала убедитесь, что все ваши пункты меню имеют свойство Id
В коде вашей главной страницы, находящемся позади обработчика загрузки страницы, сделайте что-то вроде этого
if (!Page.IsPostBack)
{
if(Page is Default)
liHome.Attributes["class"] = " active";
}
В этом примере вы должны проверить «тип» просматриваемой в данный момент страницы и добавить атрибут «к классу» для текущей ссылки, по которой осуществляется переход. вы могли бы определить свойство css для active что-то вроде
.active
{
background-color: Red;
}