2009-08-19 10 views
1

Ich habe eine ASP.NET/C# -Anwendung, in der die Masterseite das Hauptmenü meiner Anwendung und mehrere Inhaltsseiten enthalten, die von dieser Masterseite abhängen .Zugriff auf ein HTML-Steuerelement auf ASP Master Page aus dem Code hinter einer Content Page

Ich möchte den Menülink meiner Masterseite hervorheben, der der aktuellen angezeigten Inhaltsseite entspricht.

, das zu tun, ich habe bereits eine CSS-Klasse auf diese (so genannte „ausgewählt“) gewidmet

So ich habe versucht, den Master-Seite Link, den ich von der Content-Seite hervorheben möchte den Zugriff durch seine ID mit und tun so etwas (in der Inhaltsseite):

HtmlLink currentMenu = (HtmlLink) Master.FindControl("idOfTheLinkToHighlight"); 
currentMenu.Attributes.Add("class", "selected"); 

Aber ich bekomme die folgende Ausnahme:

Unable to cast object of type 'System.Web.UI.HtmlControls.HtmlGenericControl' to type 'System.Web.UI.HtmlControls.HtmlLink 

Kann jemand mir helfen, auf diesem? Dank

+0

Können wir sehen, wie Sie Ihren Link in der Masterseite deklarieren? – Gregoire

+0

Es sieht so aus, als ob Ihre Control-Deklaration nicht vom Typ HtmlLink ist, in den Sie zu konvertieren versuchen, der Deklarationscode würde helfen, wie Gregoire bereits bemerkt hat. –

Antwort

1

By the way, versuchen

(HtmlGenericControl)currentMenu = (HtmlGenericControl) Master.FindControl("idOfTheLinkToHighlight"); 
currentMenu.Attributes.Add("class", "selected"); 

sollte es funktionieren, weil Htmlgenericcontrol hat auch Attribute

+0

Ja genau! Gerade die Zeit, um diese Seite zu aktualisieren und es ist, was ich ausprobiert habe. Es funktioniert gut (und mein Problem war nur ein Fehler, der mir durch deine erste Antwort in den Sinn kam;) –

1

wurde mit dieser um für eine Weile durcheinander, wie ich es brauchte ein HTML-Link zu sein. Es stellt sich heraus, dass Sie runat = "server" in der z.

<head runat="server" id=aHead> 
0

Nur für eine Referenz, brauchte ich etwas ähnliches und tun, um es zum Laufen zu bringen ich die runat = „server“ an den Body-Tag (dank diesen Thread) gegeben.