Wie man Benutzerkontrolle Teilklassen bewusst Kontrollen erklärt in der Basisklasse?
-
24-09-2019 - |
Frage
Haben wir etwas Besonderes zu tun ASP.NET Teilklassen bewusst Kontrollen zu haben, die in unserer Benutzersteuerung der Basisklassen deklariert werden? Die Teilklassen halten Erzeugungs Erklärungen für die Kontrollen in der Basisklasse, die die Kontrollen in der Basisklasse bedeuten erhalten versteckt und sind null.
Lösung
Das CodeFileBaseClass Attribut kann auf @Page oder < a href = "http://msdn.microsoft.com/en-us/library/d19c0t4b.aspx" rel = "nofollow noreferrer"> @ Kontrolle Erklärungen die ASP.NET machen Laufzeit Kenntnis von Kontrollen erklärt in Ihrer Basisklasse.
MSDN beschreibt es wie folgt:
Gibt den Typ Name einer Basisklasse für eine Seite und der damit verbundenen Code-Behind-Klasse.
Dieses Attribut ist optional, aber wenn es verwendet, um die Codefile-Attribut muss auch sein, vorhanden. Verwenden Sie dieses Attribut, wenn Sie will ein gemeinsames Szenario implementieren, wo Sie definieren gemeinsame Felder (und Fakultativ zugehörige Ereignisse) in einem Basisklasse die Steuerelemente referenzieren in einer Webseite erklärt. Wegen dem ASP.NET Codegenerierung Modell, wenn Sie die Felder in einer Basisklasse definiert, ohne dieses Attribut zu verwenden, um Kompilierung neues Mitglied Definitionen würde für die Kontrollen erzeugt auf der Webseite erklärt (innerhalb eines trennen Stummel Teilklasse), und die gewünschtes Szenario würde nicht funktionieren. Aber wenn Sie die CodeFileBaseClass verwenden Attribut der Basisklasse zuzuordnen mit der Seite und machen Sie Ihre Teilklasse (der Name zugewiesen wird das Inherits Attribut und dessen Source Datei wird von der Codefile verwiesen Attribut) Vererben von der Basis Klasse, dann werden die Felder in der Basis Klasse in der Lage, die referenzieren Steuerelemente auf der Seite nach Code Generation .