Freigeben über


Übersicht über den Steuerelement-Generator

Ein Steuerelement-Generator ist eine Klasse, die bestimmt, wie ein auf einer ASP.NET-Seite deklarativ verwendetes Serversteuerelement analysiert wird. Jedes ASP.NET-Steuerelement ist mit einem standardmäßigen Steuerelement-Generator (System.Web.UI.ControlBuilder) verknüpft. Während der Seitenanalyse prüft der Steuerelement-Generator, ob ein Steuerelement mit dem ParseChildren(true)-Attribut markiert ist. Ist dies der Fall, müssen geschachtelte Elemente zwischen Start- und Endtag des Steuerelements den Eigenschaften des Steuerelements entsprechen. Alle anderen geschachtelten Elemente erzeugen Parserfehler. Einzelheiten finden Sie unter Verwenden von ParseChildrenAttribute. Wenn ein Steuerelement nicht als ParseChildren(true) markiert ist, erstellt der Steuerelement-Generator untergeordnete Steuerelemente und ruft IParserAccessor.AddParsedSubObject für das Steuerelement auf. Die Standardimplementierung von AddParsedSubObject fügt die untergeordneten Steuerelemente zur Controls-Auflistung des Steuerelements hinzu. Literaltext zwischen geschachtelten Steuerelementtags wird als LiteralControl analysiert.

Sie können eine andere (benutzerdefinierte) Analyselogik für das Steuerelement zur Verfügung stellen, indem Sie einen eigenen Steuerelement-Generator durch Ableiten von ControlBuilder und Außerkraftsetzen der Methoden der Basisklasse erstellen. Sie müssen den benutzerdefinierten Steuerelement-Generator diesem Steuerelement zuweisen, indem Sie das Steuerelement mit System.Web.UI.ControlBuilderAttribute markieren (siehe folgendes Beispiel).

// Define a custom control builder.
public class MyControlBuilder : ControlBuilder {...}

// Associate it with your control by applying a 
// ControlBuilder attribute.
[ControlBuilder(typeof(MyControlBuilder))]
public class MyControl : Control {...}
[Visual Basic]
' Define a custom control builder.
Public Class MyControlBuilder
   Inherits ControlBuilder
   ...
End Class

' Associate it with your control by applying a 
' ControlBuilder attribute.
<ControlBuilder(GetType(MyControlBuilder))> _ 
Public Class MyControl
   Inherits Control
   ...
End Class

Die folgende Tabelle enthält einige der Methoden von ControlBuilder, die Sie beim Definieren eines benutzerdefinierten Steuerelement-Generators wahrscheinlich außer Kraft setzen. Eine vollständige Liste der ControlBuilder-Member finden Sie unter ControlBuilder.

ControlBuilder-Methode Funktion
AllowWhiteSpaceLiterals Gibt an, ob Leerräume, die zwischen geschachtelten untergeordneten Steuerelementtags liegen, der Controls-Auflistung als LiteralControl-Instanzen hinzugefügt werden. Ein Beispiel finden Sie unter Beispiel für einen benutzerdefinierten Steuerelement-Generator.
AppendSubBuilder Fügt einen Steuerelement-Generator für untergeordnete Steuerelemente hinzu.
GetChildControlType Gibt den Type eines untergeordneten Steuerelements auf der Grundlage des Tagnamens zurück. Verwenden Sie diese Methode, um die untergeordneten Steuerelemente zu filtern, die der Controls-Auflistung hinzugefügt werden. Ein Beispiel finden Sie unter Schnelleinstieg zu ASP.NET —> ASP.NET Web Forms —> Erstellen von benutzerdefinierten Steuerelementen.

Ein Beispiel eines Steuerelement-Generators finden Sie unter Beispiel für einen benutzerdefinierten Steuerelement-Generator.

Hinweis   Sie haben außerdem die Möglichkeit, die Analyselogik außer Kraft zu setzen, indem Sie die von Control geerbte AddParsedSubObject-Methode außer Kraft setzen. Ein Beispiel finden Sie unter Schnelleinstieg zu ASP.NET —> ASP.NET Web Forms —> Erstellen von benutzerdefinierten Steuerelementen —> Außer Kraft setzen der Analyselogik. Die Analyse durch einen Steuerelement-Generator erfolgt bei der Kompilierung, während die AddParsedSubObject-Methode zur Laufzeit ausgeführt wird (dies könnte einen erhöhten Leistungsaufwand bewirken).

Siehe auch

Beispiel für einen benutzerdefinierten Steuerelement-Generator | Steuerelementanalyse, das ParseChildrenAttribute und Steuerelement-Generatoren | ControlBuilderAttribute