Найдите UnorderedList <УЛ.> управление в основной странице от страницы содержания в asp.net

btw: CVSNT поддерживает атомарные фиксации

6
задан ACP 19 November 2009 в 10:56
поделиться

2 ответа

Если я правильно понял ...

Если ваш список находится на главной странице ...

<ul runat="server" id="list">
    <li runat="server" id="home">Home</li>
    <li runat="server" id="news">News</li>
</ul>

... тогда вы можете сделать это на своей странице содержания .. .

Control list = this.Page.Master.FindControl("list");

Тогда объекты li будут элементами управления в объекте списка - например, list.Controls . Или вы можете ...

Control home = this.Page.Master.FindControl("list").FindControl("home");

... найти определенные элементы управления списком.

При использовании runat = "server" в элементах управления HTML эквивалентным объектом на стороне сервера будет HtmlGenericControl .

Если вы хотите применить класс к тегам LI , вам нужно будет преобразовать объект LI в HtmlGenericControl , а затем используйте свойство Attributes . Например ...

HtmlGenericControl home = (HtmlGenericControl)this.Page.Master.FindControl("list").FindControl("home");

home.Attributes["class"] = "className";

Надеюсь, что это поможет ...

7
ответ дан 10 December 2019 в 02:49
поделиться

Попробуйте это и дайте мне знать, работает ли он.

В CSS создайте два класса, которые называются примерно так:

.normalLink
{
background-color:#fff;
}

.selectedLink
{
background-color:#555;
}

В ваших ссылках:

<li id="mainHome" runat="server"><a title="Home" href="users.aspx" class="<%= SetSelectedLink("users.aspx") %>">Home</a>
<li id="mainManage" runat="server"><a title="Manage" href="#" class="<%= SetSelectedLink("manage.aspx") %>">Manage</a></li>

В вашем коде за страницей :

Если вы используете главную страницу, сделайте следующий бит в главном коде позади, иначе вы можете вставить его в каждый обычный aspx-код, который в нем нуждается

public string SetSelectedLink(string linkURL)
{
 if(Request.Url.ToLower().Contains(linkURL.ToLower())))
 {
    return "selectedLink";
 }
 else
 {
   return "normalLink";
 }
}

Изменить: Это работает, только если вы замените href # правильными URL!

2
ответ дан 10 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: