将类添加到ASP.NET MasterPage控件

时间:2015-08-29 10:34:56

标签: c# asp.net vb.net master-pages

这是我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#代码没问题

3 个答案:

答案 0 :(得分: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属性。

答案 1 :(得分:0)

这对我有用。我首先将其转换为HtmlGenericControl,然后添加属性。

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

答案 2 :(得分:0)

这很有效....

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