Guten Tag alle,Zugriff auf eine Inhaltskontrolle in C# bei der Verwendung von Masterseiten
ich eine Seite in ASP.NET den Aufbau und die Verwendung von Masterseiten in den Prozess.
Ich habe einen Content-Place-Holder-Namen "cphBody" in meiner Masterseite, der den Körper jeder Seite enthält, für die diese Masterseite die Masterseite ist.
In der ASP.NET-Web-Seite habe ich ein Content-Tag (Verweis "CphBody"), die auch einige Steuerelemente (Schaltflächen, Infragistics-Steuerelemente usw.) enthält, und ich möchte auf diese Steuerelemente in der CodeBehind-Datei zugreifen. Dies kann ich jedoch nicht direkt tun (this.myControl ...), da sie im Content-Tag verschachtelt sind.
Ich habe eine Problemumgehung mit der FindControl-Methode gefunden.
ContentPlaceHolder contentPlaceHolder = (ContentPlaceHolder) Master.FindControl("cphBody");
ControlType myControl = (ControlType) contentPlaceHolder.FindControl("ControlName");
Das funktioniert gut. Ich vermute jedoch, dass es kein sehr gutes Design ist. Kennst du einen eleganteren Weg?
Vielen Dank!
Guillaume Gervais.
versuchen Sie, die Steuerelemente aus der Inhaltsseite der Code-Behind zuzugreifen oder die Masterseite des Code hinter? – wulimaster
Der CodeBehind der Inhaltsseite. –
Das ist seltsam. Sie sollten direkt von der Code-Behind-Funktion Ihrer Content-Seite aus auf Ihre Steuerelemente zugreifen können, sofern sie nicht dynamisch erstellt und hinzugefügt werden. –