Partager via


Vue d'ensemble des modèles de champs Dynamic Data ASP.NET

Mise à jour : novembre 2007

Les modèles de champs Dynamic Data ASP.NET sont des contrôles utilisateur ASP.NET qui mappent les contrôles de données aux types de données dans un modèle de données. Les modèles de champs dérivent de FieldTemplateUserControl, la classe qui permet d'accéder aux champs de données, aux colonnes de données et aux métadonnées dans les modèles de données. Les projets Dynamic Data fournissent des modèles de champs par défaut, mais vous pouvez les modifier ou créer des modèles de champs personnalisés. Cette rubrique aborde les points suivants :

  • Fonctionnalités

  • Contexte

  • Modèles de champs par défaut

  • Utilisation des modèles de champs

  • Rendu des modèles de champs

Fonctionnalités

  • Dynamic Data utilise des modèles de champs pour restituer des champs de données individuels dans un modèle de données.

  • Dynamic Data vous permet d'effectuer les opérations suivantes :

    • Modifier les modèles de champs par défaut.

    • Créer des modèles de champs personnalisés.

Arrière-plan

Dynamic Data prend en charge des applications Web pilotées par les données. Comparé à l'accès aux données avec des contrôles de source de données ASP.NET et des contrôles de données existants tels que GridView et ListView, Dynamic Data peut exiger beaucoup moins de code. Par exemple, la table Products dans la base de données Northwind a des clés étrangères dans les tables Categories et Suppliers. L'affichage d'une relation de ce type à l'aide du contrôle GridView ou ListView implique que vous maîtrisiez le schéma de la base de données et que vous configuriez manuellement les contrôles, et éventuellement que vous écriviez du code.

Toutefois, en lisant le schéma de la base de données, Dynamic Data peut obtenir des informations sur les types de données et les clés étrangères. Dynamic Data fournit des contrôles de données ASP.NET qui connaissent le schéma de la base de données et qui sont configurés pour simplifier l'accès aux données et leur manipulation. Pour remplacer le rendu par défaut des contrôles GridView et DetailsView, fournissez manuellement le code pour le rendu sur chaque page. Les modèles de champs offrent un moyen plus simple pour modifier globalement le rendu par défaut des contrôles GridView et DetailsView.

Les modèles de champs sont utilisés dans les contrôles Dynamic Data pour afficher des champs de données individuels. Dynamic Data utilise des modèles de champs par défaut pour créer le rendu par défaut permettant d'afficher et de modifier les données. Vous pouvez personnaliser les modèles de champs par défaut ou en créer de nouveaux.

Par exemple, en utilisant des modèles de champs avec la table Products dans la base de données Northwind, vous pouvez afficher le nom de catégorie au lieu de l'ID de catégorie, fournir une zone de liste déroulante en mode édition, et créer des liens vers d'autres pages, telles que les pages détail qui affichent les données liées.

Pour plus d'informations sur la création des contrôles de données élaborés connaissant le schéma de la base de données, consultez Ajout d'un comportement dynamique à des contrôles liés aux données ASP.NET.

Contrôles Dynamic Data qui utilisent des modèles de champs

Les contrôles Dynamic Data qui utilisent des modèles de champs pour restituer automatiquement des données selon le type sont les suivants :

Modèles de champs par défaut

Les modèles de champs par défaut sont des modèles de champs qui sont intégrés dans une application Web Dynamic Data. Ils incluent notamment :

ForeignKey.ascx — Affiche les champs qui ont une relation plusieurs-à-un.

ForeignKey_Edit.ascx — Permet de modifier les champs qui ont une relation plusieurs-à-un.

DateTime.ascx — Affiche le type de données DateTime sous forme de texte.

Dynamic Data fournit des modèles de champs par défaut qui restituent des types de données tels que les types booléens, décimaux, entiers et texte.

Pour plus d'informations sur les modèles de champs par défaut, consultez Modèles de champs par défaut Dynamic Data ASP.NET.

Utilisation des modèles de champs

Pour implémenter un modèle de champ, obtenez les valeurs de la base de données et affichez-le, sortez la valeur à l'aide de la méthode IBindableControl.ExtractValues, puis fournissez l'accès au contrôle DataControl.

Dynamic Data vous permet de personnaliser les modèles de champs par défaut ou d'en créer de nouveaux. Si vous personnalisez un modèle de champ par défaut, Dynamic Data utilise ceux par défaut que vous avez personnalisés.

Personnalisation de l'affichage des données par les modèles de champ par défaut

Les modèles de champs par défaut sont des contrôles utilisateur ASP.NET qui mappent aux types de données dans un modèle de données. Ces contrôles sont dérivés de la classe FieldTemplateUserControl qui permet d'accéder aux champs de données, aux colonnes de base de données et aux métadonnées.

Vous pouvez modifier les modèles de champs par défaut afin de changer la manière dont les contrôles de données restituent les données. Par exemple, vous pouvez modifier les couleurs d'arrière et de premier plan du texte affiché dans un contrôle de données qui utilise les modèles de champs par défaut. Pour plus d'informations, consultez Comment : personnaliser les modèles de champs par défaut Dynamic Data ASP.NET.

Création de modèles de champs personnalisés

Vous pouvez également créer des modèles de champs personnalisés. Pour ce faire, créez un contrôle utilisateur ASP.NET qui dérive de la classe FieldTemplateUserControl. Ajoutez une propriété UIHint qui mappe le champ de données au nouveau contrôle que vous avez créé afin qu'il soit utilisé à la place du modèle de champ par défaut.

Pour plus d'informations sur la création d'un modèle de champ personnalisé, consultez Comment : personnaliser l'affichage d'un champ de données dans le modèle de données. Pour plus d'informations sur l'utilisation de la propriété UIHint, consultez Comment : personnaliser l'apparence et le comportement d'un champ de données dans un contrôle Dynamic Data.

Rendu des modèles de champs

Dynamic Data restituent les modèles de champs personnalisés et par défaut en mode d'affichage, édition et insertion. Dynamic Data utilise des règles de recherche pour déterminer le modèle de champ à restituer. La règle de recherche utilisée par Dynamic Data varie selon que le contrôle est en mode d'affichage, édition ou insertion. Par exemple, si les données dans la colonne sont des valeurs booléennes et que le contrôle de données est en mode d'affichage, Dynamic Data restitue Boolean.ascx, le modèle de champ par défaut qui affiche les types de données booléens. Toutefois, si le contrôle de données est en mode édition, Dynamic Data restitue Boolean_Edit.ascx, le modèle de champ qui active l'édition des types de données booléens. Si le contrôle de données est en mode insertion, Dynamic Data restitue Boolean_Insert.ascx, le modèle de champ qui permet aux utilisateurs d'insérer des types de données booléens.

Si un champ de données dans le modèle de données est associé à un attribut UIHint, autrement dit si un modèle de champ personnalisé est spécifié, Dynamic Data recherche un contrôle en fonction du nom UIHint. Par exemple, si l'attribut UIHint spécifie MyTemplate, Dynamic Data recherche le modèle de champ nommé MyTemplate.ascx ou MyTemplate_Edit.ascx si le contrôle est en mode édition, ou MyTemplate_Insert.ascx si le contrôle est en mode insertion. Si aucun contrôle de ce type n'est trouvé, Dynamic Data prend par défaut les modèles de champs par défaut.

Règles de recherche

Dynamic Data démarre la recherche en déterminant le mode des modèles de champs. Pour chaque mode, Dynamic Data applique un jeu de règles de recherche.

Recherche en mode d'affichage

Les règles de recherche utilisées par Dynamic Data pour restituer les modèles de champs en mode d'affichage sont les suivantes :

  1. Si des métadonnées UIHint existent (autrement dit, si un modèle de champ personnalisé existe), Dynamic Data recherche un contrôle en fonction du nom du contrôle utilisateur et le DataTypeAttribute défini dans les propriétés UIHint et DataTypeAttribute. Dynamic Data n'affiche pas tous les types de données par défaut. Par exemple, les types de données Byte[] tels que le type binaire, timestamp ou image ne sont pas restitués par défaut. Pour plus d'informations sur les types de données que Dynamic Data affiche par défaut, consultez Modèles de champs par défaut Dynamic Data ASP.NET. Pour plus d'informations sur l'affichage des types de données personnalisés, consultez DataTypeAttribute.

  2. Dynamic Data détermine le type de données à partir de la colonne dans la base de données et recherche un contrôle en fonction de celui-ci. Le nom du type de données est déterminé et utilisé dans l'ordre suivant :

    1. Recherche le nom du type de données complet, par exemple System.Int32.

    2. Si le nom du type complet est introuvable, Dynamic Data recherche le nom du type de données simple, par exemple int32.

    3. Si le nom du type de données simple est introuvable, il recherche les cas spéciaux définis dans la table de données. Par exemple, si un type de données simple tel que Int32 est introuvable, Dynamic Data recherche Integer, le cas spécial défini dans la table de données. Si le type de données simple String est introuvable, il recherche Text, le cas spécial pour String.

    4. Si aucun cas spécial n'est trouvé et qu'un type de données de secours existe, il recherche un type de données de secours. Dynamic Data utilise le type de données de secours pour effectuer la recherche depuis le début.

    5. Si aucun type de données de secours n'existe, Dynamic Data n'affiche pas de données.

  3. Si le champ est un champ de clé étrangère, Dynamic Data restitue ForeignKey.ascx **(**modèle de champ par défaut utilisé pour une relation plusieurs-à-un) ou Children.ascx (champ par défaut utilisé pour une relation un-à-plusieurs).

Si aucun contrôle de modèle de champ n'est trouvé, Dynamic Data affiche un message d'erreur indiquant qu'aucun modèle de champ n'a été trouvé et qu'il n'y a pas de données affichées.

Recherche en mode édition

Les règles de recherche en mode édition sont identiques à celles en mode d'affichage, à l'exception suivante cependant. Si le modèle de champ est en mode édition, Dynamic Data recherche un modèle de champ _Edit (par exemple, MyTemplate_Edit) et applique les règles ; sinon, il prend par défaut le modèle de champ en mode d'affichage (lecture seule).

Recherche en mode insertion

Les règles de recherche en mode insertion sont identiques à celles en mode d'affichage, à l'exception suivante cependant. Si le modèle de champ est en mode insertion, Dynamic Data recherche un modèle de champ _Insert (par exemple, MyTemplate_Insert) et applique les règles ; sinon, il recherche un modèle de champ _Edit.

Remarque :

Les contrôles utilisateur _Insert.ascx ne sont pas fournis par défaut.

Type de données de secours

Type de données

Decimal

Float, Double.

Int

Int16, byte, Long.

Chaîne

Char, Int, Decimal, GUID, DateTime, DateTimeOffset, TimeSpan.

Référence de Classe

Class

Description

FieldTemplateUserControl

Classe de base pour tous les contrôles FieldTemplateUser.

Rubriques supplémentaires

Ajout d'un comportement dynamique à des contrôles liés aux données ASP.NET

Vue d'ensemble des modèles de pages et de la génération de modèles automatique Dynamic Data ASP.NET