2015-08-29 5 views
1

Это код в моем MasterPage:Добавить класс ASP.NET управления Masterpage

<li id="liABOUT" runat="server"><a href="About.aspx">ABOUT</a></li> 

Когда я на другой странице ссылки на MasterPage Я хочу, чтобы добавить класс к этому li управления, что-то вроде этого. Не могу заставить его работать. Использование ASP.NET 4.5

Me.Master.FindControl("ContentPlaceHolderMaster").FindControl("LiAbout").Attributes.Add("class", "active") 

VB.NET или C# код будет в порядке

ответ

0

Это работало ....

' Get reference to control located on master page 
Dim lb As HtmlGenericControl = Page.Master.FindControl("liABOUT") 
lb.Attributes.Add("class", "active") 
1

Вы можете создать общественную собственность в вашем MasterPage:

public String LiAboutClass 
{ 
    get { return liABOUT.Attributes["class"]; } 
    set { liABOUT.Attributes["class"] = value; } 
} 

доступ к этой недвижимости в вашем ContentPage:

var siteMaster = (SiteMaster)this.Master; 
if (siteMaster != null) siteMaster.LiAboutClass = "active"; 

Редактировать: Также вы можете использовать MasterType. он позволяет получить доступ к объектам MasterTypes.

0

Это работает для меня. Сначала я преобразовал его в HtmlGenericControl, а затем добавил атрибут.

(Master.FindControl("liABOUT") as HtmlGenericControl).Attributes.Add("class", "active"); 
+0

Не знаете, как использовать это сейчас, некоторый код до сих пор отсутствует. – Etienne

+0

Вы можете получить объект «Мастер»? Какова ошибка, которую вы получаете? – Sunil

Смежные вопросы