Gewusst wie: Erstellen eines Feldrendering-Steuerelements

Letzte Änderung: Montag, 5. April 2010

Gilt für: SharePoint Foundation 2010

Eine Renderingsteuerelement-Klasse kann in Verbindung mit einer oder mehreren Renderingvorlage(n) verwendet werden, um benutzerdefinierte Felder im Modus Neu sowie im Bearbeitungs- oder Anzeigemodus zu rendern.

Eine Renderingsteuerelement-Klasse muss von BaseFieldControl oder von einer der Klassen in Microsoft SharePoint Foundation erben, die davon abgeleitet sind. Diese Klasse wird in derselben Assembly wie die benutzerdefinierte Feldklasse kompiliert.

Es wird empfohlen, dass Sie die folgende Namenskonvention beim Erstellen von benutzerdefinierten Feldklassen verwenden, die direkt oder indirekt von der BaseFieldControl-Klasse abgeleitet sind:

FeldtypnameFieldControl

Beispiele für ordnungsgemäß benannte Feldsteuerelementklassen sind TargetDateFieldControl und RegularExpressionFieldControl. (Die von BaseFieldControl abgeleiteten, im Lieferumfang von SharePoint Foundation enthaltenen Klassen wurden vor Festlegung dieser Namenskonvention erstellt und folgen dem Muster FeldtypnameField, z. B. DateTimeField.)

Ein Objekt, von dem ein Renderingsteuerelement instanziiert wird, enthält in der Field-Eigenschaft einen Verweis auf das gerenderte Feldobjekt. Dieses wiederum enthält einen Verweis auf das zugehörige Renderingsteuerelement in der FieldRenderingControl-Eigenschaft. Wie aus diesen reziproken Verweisen hervorgeht, sind die beiden Objekte Partner. Mit dem von SPField abgeleiteten Objekt wird die Interaktion mit der Inhaltsdatenbank behandelt, während mit dem von BaseFieldControl abgeleiteten Renderingsteuerelement die Interaktion mit Benutzern und das Rendering des Felds auf der Benutzeroberfläche behandelt wird.

Die Renderingvorlage

Jedem Renderingsteuerelement ist mindestens eine Renderingvorlage zugeordnet. Ein RenderingTemplate-Objekt wird als RenderingTemplate-Element in einer ASCX-Datei im Ordner %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\controltemplates definiert. Auf die Renderingvorlage wird durch den ID-Wert in der Eigenschaft TemplateName oder DisplayTemplateName des Renderingsteuerelement-Objekts verwiesen.

HinweisHinweis

BaseFieldControl erbt von TemplateBasedControl Elemente, mit deren Hilfe es mit mehreren Renderingvorlagen verknüpft werden kann, wobei zwischen diesen auf der Grundlage des Renderingkontexts gewechselt werden kann.

Weitere Informationen zu Renderingvorlagen finden Sie unter Gewusst wie: Erstellen von Feldrenderingvorlagen.

Die CreateChildControls-Methode

Eine Renderingsteuerelement-Klasse setzt die CreateChildControls-Methode außer Kraft, die sie von Control erbt. Da die meiste Renderingarbeit von der Renderingvorlage ausgeführt wird, muss die CreateChildControls-Methode weniger ausführen als in einer klassischen ASP.NET-Steuerelementklasse. In der Regel erhalten die untergeordneten Steuerelemente durch diese Methode nur den letzten Schliff. Beispielsweise kann einem untergeordneten Steuerelement von der Methode ein Standardwert im Modus Neu zugewiesen werden oder der aktuelle Wert des Felds einem untergeordneten Steuerelement im Anzeige- und im Bearbeitungsmodus. Es ist unwahrscheinlich, dass die Außerkraftsetzungen von CreateChildControls zahlreiche new-Operatoren enthalten, von denen untergeordnete Steuerelemente erstellt werden (die überraschender Weise auftreten, wenn ein Hintergrund in ASP.NET-Programmierung verwendet wird).

In CreateChildControls ist manchmal Datenüberprüfungslogik enthalten. Weitere Informationen zur Überprüfung von benutzerdefinierten Felddaten finden Sie unter Überprüfung von benutzerdefinierten Felddaten.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Feldtyps

Konzepte

Benutzerdefinierte Feldtypen

Gewusst wie: Erstellen einer benutzerdefinierten Feldklasse

Überprüfung von benutzerdefinierten Felddaten

Vorgehensweise: Erstellen einer benutzerdefinierten Feldtypdefinition

Gewusst wie: Erstellen von Feldrenderingvorlagen

Vorgehensweise: Erstellen eines benutzerdefinierten Feldtyps