Thomas Bandt

Über mich | Kontakt | Archiv

FindControl() mit den Master Pages von Philipp Sumi

Verwendet man die Master Pages von Philipp Sumi, so erhält man über den üblichen Weg keinen Zugriff mehr auf Controls im aktuellen Webform. Im konkreten Beispiel wollte ich auf ein HyperLink-Objekt in einem UserControl, was wiederum in ein Template eingebunden ist, zugreifen.

private void MarkActivePoint() {
string Id = Path.Replace("/","_").Replace(".aspx",string.Empty).ToLower();
HyperLink Active = (HyperLink) Page.FindControl(Id);
if(Active != null) {
Active.CssClass = "subnaviActive";
}
}

Das funktioniert so nicht. Das heißt man erhält via Page() keinerlei Zugriff.

Die Lösung: this.FindControl(Id)

This bezieht sich immer auf das aktuelle Objekt, in diesem Fall also auf das Usercontrol im Template - und somit funktioniert dann auch der Zugriff, d.h. das WebControl wird gefunden.



« Zurück  |  Weiter »