You have few options:
- Add a
runat="server
to your anchor tag - Use
HyperLink
control instead
ASP:
<asp:HyperLink ID ="ReportHyperLink"
NavigateUrl ="report.aspx"
CssClass="list-group-item" runat="server" />
code behind:
ReportHyperLink.CssClass= "list-group-item active";
cant seem to get the code behind to work if using in a masterpage 'child' page
You just need to find the control
ASP:
<asp:ContentPlaceHolder ID="cpHolder" runat="server">
<asp:HyperLink ID ="ReportHyperLink"
NavigateUrl ="report.aspx"
CssClass="list-group-item" runat="server" />
</asp:ContentPlaceHolder>
code behind:
ContentPlaceHolder cp = (ContentPlaceHolder)this.Master.FindControl("CpHolder");
HyperLink hp= (HyperLink)cp.FindControl("ReportHyperLink");
hp.CssClass= "list-group-item active";
Also a better approach , you can add a public property in the master page like this:
master's code behind:
public string ReportHyperLinkCssClass
{
get {
return this.ReportHyperLink.CssClass;
}
set {
this.ReportHyperLink.CssClass= value;
}
}
Page Load Code
var myMaster = this.Master as YourMasterType;
if(myMaster != null)
{
myMaster.ReportHyperLinkCssClass = newCssClass;
}