Übersicht über ASP.NET Dynamic Data-Feldvorlagen
Aktualisiert: November 2007
ASP.NET Dynamic Data-Feldvorlagen sind ASP.NET-Benutzersteuerelemente, die Datensteuerelemente Datentypen in einem Datenmodell zuordnen. Feldvorlagen werden von FieldTemplateUserControl abgeleitet. Diese Klasse ermöglicht den Zugriff auf Datenfelder, Datenspalten und Metadaten in Datenmodellen. Dynamic Data-Projekte stellen einige Standardfeldvorlagen bereit. Sie können diese Vorlagen ändern oder Ihre eigenen benutzerdefinierten Feldvorlagen erstellen. In dieser Übersicht werden folgende Themen besprochen:
Features
Hintergrundinformationen
Standardfeldvorlagen
Verwenden von Feldvorlagen
Rendering von Feldvorlagen
Features
Dynamic Data verwendet Feldvorlagen, um einzelne Datenfelder in einem Datenmodell zu rendern.
Dynamic Data ermöglicht Ihnen Folgendes:
Ändern der Standardfeldvorlagen
Erstellen benutzerdefinierter Feldvorlagen
Hintergrundinformationen
Dynamic Data unterstützt datengesteuerte Webanwendungen. Im Vergleich zum Zugriff auf Daten mit ASP.NET-Datenquellensteuerelementen und bestehenden Datensteuerelementen, wie GridView und ListView, erfordert Dynamic Data ggf. erheblich weniger Code. So weist die Tabelle Products in der Northwind-Datenbank beispielsweise Fremdschlüssel in den Tabellen Categories und Suppliers auf. Um eine solche Beziehung mit dem GridView-Steuerelement oder dem ListView-Steuerelement anzuzeigen, müssen Sie das Datenbankschema kennen, die Steuerelemente manuell konfigurieren und möglicherweise Code schreiben.
Dynamic Data kann jedoch durch Lesen des Datenbankschemas Informationen über Datentypen und Fremdschlüssel abrufen. Dynamic Data stellt ASP.NET-Datensteuerelemente bereit, die das Datenbankschema kennen und so konfiguriert sind, dass Ihnen der Zugriff auf die Daten und die Bearbeitung der Daten erleichtert wird. Um das Standardrendering des GridView-Steuerelements und des DetailsView-Steuerelements zu ersetzen, stellen Sie manuell Code für das Rendering auf jeder Seite bereit. Feldvorlagen sind jedoch ein einfacher Weg, das Standardrendering des GridView-Steuerelements und des DetailsView-Steuerelements global zu ändern.
Feldvorlagen werden in Dynamic Data-Steuerelementen zur Anzeige einzelner Datenfelder verwendet. Dynamic Data verwendet Standardfeldvorlagen, um für die Anzeige und Bearbeitung von Daten ein Standardrendering zu erstellen. Sie können die Standardfeldvorlagen anpassen oder neue Vorlagen erstellen.
Wenn Sie beispielsweise Feldvorlagen für die Tabelle Products in der Northwind-Datenbank verwenden, können Sie anstelle der Kategorie-ID den Kategorienamen anzeigen, ein Dropdown-Listenfeld im Bearbeitungsmodus bereitstellen und Links auf andere Seiten anlegen, z. B. auf Detailseiten mit zugehörigen Daten .
Informationen darüber, wie Sie komplexe Datensteuerelemente erstellen, die das Datenbankschema beachten, finden Sie unter Hinzufügen von dynamischem Verhalten zu datengebundenen ASP.NET-Steuerelementen.
Dynamic Data-Steuerelemente, die Feldvorlagen verwenden
Zu den Dynamic Data-Steuerelementen, die mithilfe von Feldvorlagen Daten automatisch rendern, gehören folgende:
DynamicControl: Wird in FormView, ListView und allen Steuerelementen wie GridView und DetailsView verwendet, bei denen Daten im Datenmodell mithilfe von Vorlagen angezeigt und bearbeitet werden können. Dieses Steuerelement ermöglicht zudem die Verwendung von Vorlagen in Datenspalten. Weitere Informationen hierzu finden Sie unter Gewusst wie: Verwenden von ASP.NET Dynamic Data in vorlagenbasierten datengebundenen Steuerelementen.
ForeignKey.ascx: Eine Standardfeldvorlage, die zum Anzeigen von Fremdschlüsselspalten verwendet wird. href kann über das DynamicField-Objekt und das DynamicControl-Objekt verfügbar und zugänglich gemacht werden.
Children.ascx: Eine Standardfeldvorlage, die zum Anzeigen von Fremdschlüsselspalten verwendet wird. Die href-Eigenschaft und die AllowNavigation-Eigenschaft können über DynamicField und DynamicControl festgelegt werden.
DynamicField: Obwohl DynamicField ein DataControlField ist, wird es hier erwähnt, da es in einem GridView-Datensteuerelement und in einem DetailsView-Datensteuerelement verwendet wird, um Validierungslogik zum Datenmodell hinzuzufügen, anzuzeigen und zu bearbeiten. Weitere Informationen hierzu finden Sie unter Gewusst wie: Hinzufügen von dynamischem Verhalten zu datengebundenen Steuerelementen mit DynamicField.
Standardfeldvorlagen
Standardfeldvorlagen sind Feldvorlagen, die in eine Dynamic Data-Webanwendung integriert werden. Beispiele für diese Standardfeldvorlagen sind:
ForeignKey.ascx: Zeigt Felder mit einer n:1-Beziehung an.
ForeignKey_Edit.ascx: Wird zur Bearbeitung von Feldern mit einer n:1-Beziehung verwendet.
DateTime.ascx: Zeigt den DateTime-Datentyp als Text an.
Dynamic Data stellt Standardfeldvorlagen bereit, die Datentypen wie Boolean, Decimal, Integer und Text rendern.
Weitere Informationen über Standardfeldvorlagen finden Sie unter ASP.NET Dynamic Data-Standardfeldvorlagen.
Verwenden von Feldvorlagen
Um eine Feldvorlage zu implementieren, rufen Sie Werte aus der Datenbank ab und zeigen sie an, rufen Werte mit der IBindableControl.ExtractValues-Methode ab und stellen den Zugriff auf das DataControl-Steuerelement bereit.
Mit Dynamic Data können Sie Standardfeldvorlagen anpassen oder neue Feldvorlagen erstellen. Wenn Sie Standardfeldvorlagen anpassen, verwendet Dynamic Data anschließend die von Ihnen geänderten Feldvorlagen.
Anpassen der Datenanzeige durch Standardfeldvorlagen
Standardfeldvorlagen sind ASP.NET-Benutzersteuerelemente, die Datentypen in einem Datenmodell zugeordnet sind. Diese Steuerelemente werden von der FieldTemplateUserControl-Klasse abgeleitet, durch die der Zugriff auf Datenfelder, Datenbankspalten und Metadaten ermöglicht wird.
Sie können die Standardfeldvorlagen bearbeiten, um festzulegen, wie die Daten von den Datensteuerelementen gerendert werden. So können Sie beispielsweise die Hintergrund- und die Vordergrundfarbe von Text ändern, der in einem Datensteuerelement angezeigt wird, das die Standardfeldvorlage verwendet. Weitere Informationen hierzu finden Sie unter Gewusst wie: Anpassen von ASP.NET Dynamic Data-Standardfeldvorlagen.
Erstellen benutzerdefinierter Feldvorlagen
Sie können auch Ihre eigenen benutzerdefinierten Feldvorlagen erstellen. Hierfür erstellen Sie ein ASP.NET-Benutzersteuerelement, das von der FieldTemplateUserControl-Klasse abgeleitet wird. Anschließend fügen Sie eine UIHint-Eigenschaft hinzu, die das Datenfeld mit dem neu erstellten Steuerelement verknüpft, sodass es anstelle der Standardfeldvorlage verwendet wird.
Informationen zum Erstellen von benutzerdefinierten Feldvorlagen finden Sie unter Gewusst wie: Anpassen der Datenfeldanzeige im Datenmodell. Informationen zur Verwendung der UIHint-Eigenschaft finden Sie unter Gewusst wie: Anpassen der Darstellung und des Verhaltens von Datenfeldern in einem Dynamic Data-Steuerelement.
Rendering von Feldvorlagen
Dynamic Data rendert Standard- und Benutzerfeldvorlagen im Anzeige-, Bearbeitungs- und Einfügemodus. Dynamic Data verwendet Suchregeln, um die zu rendernde Feldvorlage zu ermitteln. Die von Dynamic Data verwendete Suchregel ist abhängig davon, ob sich das Steuerelement im Anzeige-, Bearbeitungs- oder Einfügemodus befindet. Wenn es sich beispielsweise bei den Daten in der Spalte um boolesche Werte handelt und sich das Datensteuerelement im Anzeigemodus befindet, rendert Dynamic Data die Vorlage Boolean.ascx, d. h. die Standardfeldvorlage für die Anzeige boolescher Datentypen. Wenn sich das Datensteuerelement jedoch im Bearbeitungsmodus befindet, rendert Dynamic Data die Vorlage Boolean_Edit.ascx, d. h. die Feldvorlage, durch die die Bearbeitung boolescher Datentypen ermöglicht wird. Wenn sich das Datensteuerelement im Einfügemodus befindet, rendert Dynamic Data die Vorlage Boolean_Insert.ascx, d. h. die Feldvorlage, mit der Benutzer boolesche Datentypen einfügen können.
Falls dem Datenfeld im Datenmodell ein UIHint-Attribut zugewiesen ist (also falls eine benutzerdefinierte Feldvorlage angegeben wurde), sucht Dynamic Data anhand des UIHint-Namens nach einem Steuerelement. Wenn durch das UIHint-Attribut zum Beispiel MyTemplate angegeben wird, sucht Dynamic Data nach der Feldvorlage MyTemplate.ascx bzw. MyTemplate_Edit.ascx, wenn sich das Steuerelement im Bearbeitungsmodus befindet, oder nach MyTemplate_Insert.ascx, wenn sich das Steuerelement im Einfügemodus befindet. Wenn diese Steuerelemente nicht gefunden werden, verwendet Dynamic Data die Standardfeldvorlagen.
Suchregeln
Dynamic Data startet die Suche mit der Bestimmung des Modus der Feldvorlagen. Für jeden Modus wendet Dynamic Data einen Satz von Suchregeln an.
Suchregeln für den Anzeigemodus
Im Folgenden finden Sie die Suchregeln, die von Dynamic Data zum Rendern von Feldvorlagen im Anzeigemodus verwendet werden:
Falls UIHint-Metadaten (das heißt eine benutzerdefinierte Feldvorlage) vorhanden sind, sucht Dynamic Data anhand des Namens des Benutzersteuerelements und anhand des DataTypeAttribute, das in der UIHint-Eigenschaft und der DataTypeAttribute-Eigenschaft definiert ist, nach einem Steuerelement. Dynamic Data zeigt nicht von vorneherein alle Datentypen an. Byte[]-Datentypen, wie binary, timestamp und image, werden standardmäßig nicht gerendert. Weitere Informationen zu den von Dynamic Data standardmäßig angezeigten Datentypen finden Sie unter ASP.NET Dynamic Data-Standardfeldvorlagen. Informationen zum Anzeigen benutzerdefinierter Datentypen finden Sie unter DataTypeAttribute.
Dynamic Data ermittelt den Datentyp über die Spalte in der Datenbank und sucht anhand des Datentyps nach einem Steuerelement. Der Datentypname wird ermittelt und in der folgenden Reihenfolge verwendet:
Dynamic Data sucht nach dem vollständigen Datentypnamen, zum Beispiel System.Int32.
Falls der vollständige Name nicht gefunden wird, sucht Dynamic Data nach dem einfachen Datentypnamen, zum Beispiel int32.
Falls der einfache Name nicht gefunden wird, sucht Dynamic Data nach in der Datentabelle definierten Sonderfällen. Wenn beispielsweise ein einfacher Datentyp wie Int32 nicht gefunden wird, sucht Dynamic Data nach Integer, dem in der Datentabelle definierten Sonderfall. Falls der einfache Datentyp String nicht gefunden wird, sucht Dynamic Data nach Text, dem in der Datentabelle definierten Sonderfall für String.
Falls kein Sonderfall gefunden wird und ein Fallbackdatentyp vorhanden ist, wird nach einem Fallbackdatentyp gesucht. Dynamic Data führt dann die Suche noch einmal mit dem Fallbackdatentyp durch.
Wenn kein Fallbackdatentyp vorhanden ist, zeigt Dynamic Data keine Daten an.
Falls es sich bei dem Feld um ein Fremdschlüsselfeld handelt, rendert Dynamic Data die Vorlage ForeignKey.ascx (die Standardfeldvorlage für n:1-Beziehungen) oder die Vorlage Children.ascx (die Standardfeldvorlage für 1:n-Beziehungen).
Falls kein Feldvorlagensteuerelement gefunden wird, zeigt Dynamic Data eine Fehlermeldung an, die besagt, dass keine Feldvorlage gefunden wurde und keine Daten angezeigt werden.
Suchregeln für den Bearbeitungsmodus
Die Suchregeln für den Bearbeitungsmodus entsprechen denen des Anzeigemodus mit der folgenden Ausnahme: Falls sich die Feldvorlage im Bearbeitungsmodus befindet, sucht Dynamic Data nach einer "_Edit"-Feldvorlage, zum Beispiel MyTemplate_Edit, und wendet die Regeln an. Andernfalls wird in den Anzeigemodus (nur Lesen) gewechselt.
Suchregeln für den Einfügemodus
Die Suchregeln für den Einfügemodus entsprechen denen des Anzeigemodus mit der folgenden Ausnahme: Falls sich die Feldvorlage im Einfügemodus befindet, sucht Dynamic Data nach einer _Insert-Feldvorlage, zum Beispiel MyTemplate_Insert, und wendet die Regeln an. Andernfalls wird nach einer _Edit-Feldvorlage gesucht.
Hinweis: |
---|
"_Insert.ascx"-Benutzersteuerelemente werden nicht standardmäßig bereitgestellt. |
Fallbackdatentyp |
Datentyp |
---|---|
Dezimal |
Float, Double |
Int |
Int16, byte, Long |
Zeichenfolge |
Char, Int, Decimal, GUID, DateTime, DateTimeOffset, TimeSpan |
Klassenreferenz
Class |
Beschreibung |
---|---|
Basisklasse für alle FieldTemplateUser-Steuerelemente |
Weitere Themen
Hinzufügen von dynamischem Verhalten zu datengebundenen ASP.NET-Steuerelementen
Übersicht über den ASP.NET Dynamic Data-Gerüstbau und Seitenvorlagen