Spécifie le nom d'un type supplémentaire à associer à un champ de données.
System.Attribute
System.ComponentModel.DataAnnotations.ValidationAttribute
System.ComponentModel.DataAnnotations.DataTypeAttribute
System.ComponentModel.DataAnnotations.EnumDataTypeAttribute
Espace de noms : System.ComponentModel.DataAnnotations
Assembly : System.ComponentModel.DataAnnotations (dans System.ComponentModel.DataAnnotations.dll)
<AttributeUsageAttribute(AttributeTargets.Method Or AttributeTargets.Property Or AttributeTargets.Field Or AttributeTargets.Parameter, AllowMultiple := False)> _ Public Class DataTypeAttribute _ Inherits ValidationAttribute
[AttributeUsageAttribute(AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter, AllowMultiple = false)] public class DataTypeAttribute : ValidationAttribute
[AttributeUsageAttribute(AttributeTargets::Method|AttributeTargets::Property|AttributeTargets::Field|AttributeTargets::Parameter, AllowMultiple = false)] public ref class DataTypeAttribute : public ValidationAttribute
[<AttributeUsageAttribute(AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Parameter, AllowMultiple = false)>] type DataTypeAttribute = class inherit ValidationAttribute end
Le type DataTypeAttribute expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
DataTypeAttribute(DataType) | Initialise une nouvelle instance de la classe DataTypeTypeAttribute à l'aide du nom de type spécifié. |
|
DataTypeAttribute(String) | Initialise une nouvelle instance de la classe DataTypeTypeAttribute à l'aide du nom de modèle de champ spécifié. |
| Nom | Description | |
|---|---|---|
|
CustomDataType | Obtient le nom du modèle de champ personnalisé associé au champ de données. |
|
DataType | Obtient le type associé au champ de données. |
|
DisplayFormat | Obtient un format d'affichage de champ de données. |
|
ErrorMessage | Obtient ou définit un message d'erreur à associer à un contrôle de validation si la validation échoue. (Hérité de ValidationAttribute.) |
|
ErrorMessageResourceName | Obtient ou définit le nom de la ressource de message d'erreur à utiliser pour rechercher la valeur de la propriété ErrorMessageResourceType si la validation échoue. (Hérité de ValidationAttribute.) |
|
ErrorMessageResourceType | Obtient ou définit le type de ressource à utiliser pour la recherche de message d'erreur si une validation échoue. (Hérité de ValidationAttribute.) |
|
ErrorMessageString | Obtient le message d'erreur de validation localisé. (Hérité de ValidationAttribute.) |
|
TypeId | Lors de son implémentation dans une classe dérivée, obtient un identificateur unique pour Attribute. (Hérité de Attribute.) |
| Nom | Description | |
|---|---|---|
|
Equals | Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) |
|
FormatErrorMessage | Applique la mise en forme à un message d'erreur en fonction du champ de données dans lequel l'erreur s'est produite. (Hérité de ValidationAttribute.) |
|
GetDataTypeName | Retourne le nom du type associé au champ de données. |
|
GetHashCode | Retourne le code de hachage pour cette instance. (Hérité de Attribute.) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
GetValidationResult | Vérifie si la valeur spécifiée est valide en tenant compte de l'attribut de validation actuel. (Hérité de ValidationAttribute.) |
|
IsDefaultAttribute | En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée. (Hérité de Attribute.) |
|
IsValid(Object) | Vérifie que la valeur du champ de données est valide. (Substitue ValidationAttribute.IsValid(Object).) |
|
IsValid(Object, ValidationContext) | Valide la valeur spécifiée en tenant compte de l'attribut de validation actuel. (Hérité de ValidationAttribute.) |
|
Match | En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.) |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
|
Validate(Object, ValidationContext) | Valide l'objet spécifié. (Hérité de ValidationAttribute.) |
|
Validate(Object, String) | Valide l'objet spécifié. (Hérité de ValidationAttribute.) |
| Nom | Description | |
|---|---|---|
|
_Attribute.GetIDsOfNames | Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.) |
|
_Attribute.GetTypeInfo | Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute.) |
|
_Attribute.GetTypeInfoCount | Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute.) |
|
_Attribute.Invoke | Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute.) |
L'attribut DataTypeAttribute vous permet de marquer des champs à l'aide d'un type qui est plus spécifique que le type intrinsèque de la base de données. Le nom de type est sélectionné à partir du type énumération DataType. Par exemple, un champ de données de type chaîne qui contient des adresses de messagerie peut être spécifié comme type EmailAddress. Ces informations sont ensuite accessibles par les modèles de champs afin de modifier la façon dont le champ de données est traité.
Vous utilisez l'attribut DataTypeAttribute pour les raisons suivantes :
-
Pour fournir des informations de type supplémentaires pour un champ de données. Pour cela, vous appliquez l'attribut DataTypeAttribute à un champ de données dans le modèle de données et vous spécifiez le nom de type supplémentaire à partir de l'énumération DataType. Le modèle de champ qui traite le champ de données peut accéder à ces informations de type de métadonnées supplémentaires pour déterminer comment traiter le champ. Par exemple, le modèle de champ de texte peut générer des liens hypertexte pour des adresses de messagerie dont le type intrinsèque est String.
-
Pour associer un modèle de champ personnalisé à un champ de données. Le modèle de champ personnalisé spécifié sera ensuite utilisé pour traiter le champ de données. Il s'agit d'une alternative à l'utilisation de l'attribut UIHintAttribute.
Lorsque vous appliquez l'attribut DataTypeAttribute à un champ de données, vous devez effectuer les opérations suivantes :
-
suivre les règles d'utilisation de l'attribut ;
-
implémenter la classe de métadonnées qui contient les champs de données auxquels vous souhaitez appliquer l'attribut ;
-
émettre des erreurs de validation le cas échéant.
Pour plus d'informations, consultez Instructions relatives à Dynamic Data ASP.NET.
Consultez un exemple de code de runtime de cette fonctionnalité : Run.
L'exemple suivant utilise l'attribut DataTypeAttribute pour personnaliser l'affichage du champ de données EmailAddress. Les adresses de messagerie sont indiquées comme liens hypertexte plutôt que texte simple, qui est ce que Dynamic Data déduirait du type de données intrinsèque. L'exemple de code est composé de trois parties et il exécute les étapes suivantes :
-
Il implémente une classe de métadonnées partielle et la classe de métadonnées associée.
-
Dans la classe de métadonnées associée, il applique l'attribut DataTypeAttribute au champ de données EmailAddress en spécifiant la valeur énumérée EmailAddress. Cela indique au modèle de champ Text.ascx qu'il doit personnaliser l'affichage des adresses de messagerie.
-
Il modifie le modèle de champ Text.ascx pour personnaliser l'affichage des champs de données EmailAddress.
Imports System Imports System.Web.DynamicData Imports System.ComponentModel.DataAnnotations <MetadataType(GetType(CustomerMetadata))> _ Partial Public Class Customer End Class Public Class CustomerMetadata ' Add type information. <DataType(DataType.EmailAddress)> _ Public EmailAddress As Object End Class
using System; using System.Web.DynamicData; using System.ComponentModel.DataAnnotations; [MetadataType(typeof(CustomerMetaData))] public partial class Customer { } public class CustomerMetaData { // Add type information. [DataType(DataType.EmailAddress)] public object EmailAddress; }
<%@ Control Language="VB" CodeFile="Text.ascx.vb" Inherits="TextField" %> <!-- Removed, evaluated in the code behind. <%# FieldValueString %> -->
<%@ Control Language="C#" CodeFile="Text.ascx.cs" Inherits="TextField" %> <!-- Removed, evaluated in the code behind. <%# FieldValueString %> -->
Imports System Imports System.Linq Imports System.Web.UI.WebControls Imports System.Web.DynamicData Imports System.ComponentModel.DataAnnotations Partial Public Class TextField Inherits System.Web.DynamicData.FieldTemplateUserControl Protected Overloads Overrides Sub OnDataBinding(ByVal e As EventArgs) MyBase.OnDataBinding(e) Dim processed As Boolean = False Dim metadata As DataTypeAttribute = _ MetadataAttributes.OfType(Of DataTypeAttribute)().FirstOrDefault() If metadata IsNot Nothing Then If metadata.DataType = DataType.EmailAddress Then If Not String.IsNullOrEmpty(FieldValueString) Then processed = True Dim hyperlink As New HyperLink() hyperlink.Text = FieldValueString hyperlink.NavigateUrl = "mailto:" + FieldValueString Controls.Add(hyperlink) End If End If End If If Not processed Then Dim literal As New Literal() literal.Text = FieldValueString Controls.Add(literal) End If End Sub End Class
using System; using System.Linq; using System.Web.UI.WebControls; using System.Web.DynamicData; using System.ComponentModel.DataAnnotations; public partial class TextField : System.Web.DynamicData.FieldTemplateUserControl { protected override void OnDataBinding(EventArgs e) { base.OnDataBinding(e); bool processed = false; var metadata = MetadataAttributes.OfType <DataTypeAttribute>().FirstOrDefault(); if (metadata != null) { if (metadata.DataType == DataType.EmailAddress) { if (!string.IsNullOrEmpty(FieldValueString)) { processed = true; HyperLink hyperlink = new HyperLink(); hyperlink.Text = FieldValueString; hyperlink.NavigateUrl = "mailto:" + FieldValueString; Controls.Add(hyperlink); } } } if (!processed) { Literal literal = new Literal(); literal.Text = FieldValueString; Controls.Add(literal); } } }
Pour compiler et exécuter cet exemple de code, vous avez besoin des éléments suivants :
-
Visual Studio 2008 Service Pack 1 ou Visual Developer 2008 Express Edition Service Pack 1.
-
L'exemple de base de données AdventureWorksLT. Pour plus d'informations sur le téléchargement et l'installation de l'exemple de base de données SQL Server, consultez Exemples de produits Microsoft SQL Server : Base de données (en anglais) sur le site CodePlex. Assurez-vous d'installer la version de l'exemple de base de données correspondant à la version de SQL Server que vous exécutez (SQL Server 2005 ou SQL Server 2008).
-
Un site Web piloté par des données. Celui-ci vous permet de créer un contexte de données pour la base de données, ainsi que la classe qui contient le champ de données à personnaliser. Pour plus d'informations, consultez Walkthrough: Creating a New Dynamic Data Web Site using Scaffolding.
.NET Framework
Pris en charge dans : 4, 3.5 SP1.NET Framework Client Profile
Pris en charge dans : 4Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.