DataTypeAttribute DataTypeAttribute DataTypeAttribute DataTypeAttribute Class

Definición

Especifica el nombre de un tipo adicional para asociar con un campo de datos.Specifies the name of an additional type to associate with a data field.

public ref class DataTypeAttribute : System::ComponentModel::DataAnnotations::ValidationAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Method | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false)]
[System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple=false)]
[System.AttributeUsage(System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field | System.AttributeTargets.Parameter, AllowMultiple=false)]
public class DataTypeAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute
type DataTypeAttribute = class
    inherit ValidationAttribute
Public Class DataTypeAttribute
Inherits ValidationAttribute
Herencia
Derivado
Atributos

Ejemplos

En el ejemplo siguiente se usa el DataTypeAttribute atributos para personalizar la presentación del campo de datos de dirección de correo electrónico.The following example uses the DataTypeAttribute attribute to customize the display of the EmailAddress data field. Las direcciones de correo electrónico se muestran como hipervínculos en lugar de como texto simple, que es lo que dinámico de datos podría deducir el tipo de datos intrínseca.The email addresses are shown as hyperlinks instead of as simple text, which is what Dynamic Data would infer from the intrinsic data type. El código de ejemplo consta de tres partes, y realiza los pasos siguientes:The example code is in three parts, and it performs the following steps:

  • Implementa una clase parcial de metadatos y la clase de metadatos asociado.It implements a metadata partial class and the associated metadata class.

  • En la clase de metadatos asociada, se aplica el DataTypeAttribute atributo al campo de datos de dirección de correo electrónico especificando la EmailAddress valor enumerado.In the associated metadata class, it applies the DataTypeAttribute attribute to the EmailAddress data field by specifying the EmailAddress enumerated value. Esto indica a la plantilla de campo Text.ascx que debe personalizar la visualización de direcciones de correo electrónico.This indicates to the Text.ascx field template that it should customize the display of email addresses.

  • Modifica la plantilla de campo Text.ascx para personalizar la visualización de los campos de datos de la dirección de correo electrónico.It modifies the Text.ascx field template to customize the display of the EmailAddress data fields.

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;

}

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


<%@ Control Language="C#" 
CodeFile="Text.ascx.cs" Inherits="TextField" %>

<!-- Removed, evaluated in the code behind.
<%# FieldValueString %> --> 

<%@ Control Language="VB" 
  CodeFile="Text.ascx.vb" Inherits="TextField" %>

<!-- Removed, evaluated in the code behind.
<%# FieldValueString %> --> 


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);
        }
    }

}
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

Para compilar y ejecutar el código de ejemplo, necesita lo siguiente:To compile and run the example code, you need the following:

  • Cualquier edición de Visual Studio 2010 o posterior.Any edition of Visual Studio 2010 or later.

  • La base de datos de ejemplo AdventureWorksLT.The AdventureWorksLT sample database. Para obtener información acerca de cómo descargar e instalar la base de datos de ejemplo de SQL Server, vea Microsoft SQL Server Product Samples: Base de datos en GitHub.For information about how to download and install the SQL Server sample database, see Microsoft SQL Server Product Samples: Database on GitHub. Asegúrese de que instale la versión correcta de la base de datos de ejemplo para la versión de SQL Server que se está ejecutando.Make sure that you install the correct version of the sample database for the version of SQL Server that you are running.

  • Un sitio Web controlado por datos.A data-driven Web site. Esto le permite crear un contexto de datos para la base de datos y para crear la clase que contiene el campo de datos para personalizar.This enables you to create a data context for the database and to create the class that contains the data field to customize. Para obtener más información, vea Walkthrough: Creating a New Dynamic Data Web Site using Scaffolding.For more information, see Walkthrough: Creating a New Dynamic Data Web Site using Scaffolding.

Comentarios

El DataTypeAttribute atributo le permite marcar los campos mediante el uso de un tipo que es más específico que el tipo intrínseco de base de datos.The DataTypeAttribute attribute enables you to mark fields by using a type that is more specific than the database intrinsic type. El nombre de tipo está seleccionado en el DataType tipo de enumeración.The type name is selected from the DataType enumeration type. Por ejemplo, se puede especificar un campo de datos de cadena que contiene las direcciones de correo electrónico como el EmailAddress tipo.For example, a string data field that contains email addresses can be specified as the EmailAddress type. A continuación, se tiene acceso a esta información mediante las plantillas de campo para modificar cómo se procesa el campo de datos.This information is then accessed by the field templates to modify how the data field is processed.

Usa el DataTypeAttribute atributo por las razones siguientes:You use the DataTypeAttribute attribute for the following reasons:

  • Para proporcionar información adicional de tipo para un campo de datos.To provide additional type information for a data field. Hacer esto aplicando el DataTypeAttribute atributo a un campo de datos en el modelo de datos y especificando el nombre de tipo adicional desde el DataType enumeración.You do this by applying the DataTypeAttribute attribute to a data field in the data model and by specifying the additional type name from the DataType enumeration. La plantilla de campo que procesa el campo de datos puede tener acceso a esta información de tipo de metadatos adicionales para determinar cómo procesar el campo.The field template that processes the data field can access this additional metadata type information to determine how to process the field. Por ejemplo, la plantilla de campo de texto puede generar hipervínculos para las direcciones de correo electrónico cuyo tipo intrínseco es String.For example, the text field template can generate hyperlinks for email addresses whose intrinsic type is String.

  • Para asociar una plantilla de campo personalizada a un campo de datos.To associate a custom field template with a data field. La plantilla de campo personalizado especificado, a continuación, se usará para procesar el campo de datos.The specified custom field template will then be used to process the data field. Esta es una alternativa al uso de la UIHintAttribute atributo.This is an alternative to using the UIHintAttribute attribute.

Al aplicar el DataTypeAttribute atributo a un campo de datos, debe hacer lo siguiente:When you apply the DataTypeAttribute attribute to a data field you must do the following:

  • Siga las reglas de uso del atributo.Follow the attribute usage rules.

  • Implementar la clase de metadatos que contiene los campos de datos a la que desea aplicar el atributo.Implement the metadata class that contains the data fields to which you want to apply the attribute.

  • Emitir errores de validación según corresponda.Issue validation errors as appropriate.

Para obtener más información, consulte directrices de datos dinámicos de ASP.NET.For more information, see ASP.NET Dynamic Data Guidelines.

Constructores

DataTypeAttribute(DataType) DataTypeAttribute(DataType) DataTypeAttribute(DataType) DataTypeAttribute(DataType)

Inicializa una nueva instancia de la clase DataTypeAttribute utilizando el nombre de tipo especificado.Initializes a new instance of the DataTypeAttribute class by using the specified type name.

DataTypeAttribute(String) DataTypeAttribute(String) DataTypeAttribute(String) DataTypeAttribute(String)

Inicializa una nueva instancia de la clase DataTypeAttribute utilizando el nombre de la plantilla de campo especificado.Initializes a new instance of the DataTypeAttribute class by using the specified field template name.

Propiedades

CustomDataType CustomDataType CustomDataType CustomDataType

Obtiene el nombre de la plantilla de campo personalizada asociada al campo de datos.Gets the name of custom field template that is associated with the data field.

DataType DataType DataType DataType

Obtiene el tipo asociado al campo de datos.Gets the type that is associated with the data field.

DisplayFormat DisplayFormat DisplayFormat DisplayFormat

Obtiene el formato de presentación de un campo de datos.Gets a data-field display format.

ErrorMessage ErrorMessage ErrorMessage ErrorMessage

Obtiene o establece un mensaje de error que se va a asociar a un control de validación si se produce un error de validación.Gets or sets an error message to associate with a validation control if validation fails.

(Inherited from ValidationAttribute)
ErrorMessageResourceName ErrorMessageResourceName ErrorMessageResourceName ErrorMessageResourceName

Obtiene o establece el nombre de recurso del mensaje de error que se va a usar para buscar el valor de la propiedad ErrorMessageResourceType si se produce un error en la validación.Gets or sets the error message resource name to use in order to look up the ErrorMessageResourceType property value if validation fails.

(Inherited from ValidationAttribute)
ErrorMessageResourceType ErrorMessageResourceType ErrorMessageResourceType ErrorMessageResourceType

Obtiene o establece el tipo de recurso que se va a usar para buscar el mensaje de error si se produce un error de validación.Gets or sets the resource type to use for error-message lookup if validation fails.

(Inherited from ValidationAttribute)
ErrorMessageString ErrorMessageString ErrorMessageString ErrorMessageString

Obtiene el mensaje de error de validación traducido.Gets the localized validation error message.

(Inherited from ValidationAttribute)
RequiresValidationContext RequiresValidationContext RequiresValidationContext RequiresValidationContext

Obtiene un valor que indica si el atributo requiere contexto de validación.Gets a value that indicates whether the attribute requires validation context.

(Inherited from ValidationAttribute)
TypeId TypeId TypeId TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
FormatErrorMessage(String) FormatErrorMessage(String) FormatErrorMessage(String) FormatErrorMessage(String)

Aplica formato a un mensaje de error según el campo de datos donde se produjo el error.Applies formatting to an error message, based on the data field where the error occurred.

(Inherited from ValidationAttribute)
GetDataTypeName() GetDataTypeName() GetDataTypeName() GetDataTypeName()

Devuelve el nombre del tipo asociado al campo de datos.Returns the name of the type that is associated with the data field.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
GetValidationResult(Object, ValidationContext) GetValidationResult(Object, ValidationContext) GetValidationResult(Object, ValidationContext) GetValidationResult(Object, ValidationContext)

Comprueba si el valor especificado es válido con respecto al atributo de validación actual.Checks whether the specified value is valid with respect to the current validation attribute.

(Inherited from ValidationAttribute)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
IsValid(Object) IsValid(Object) IsValid(Object) IsValid(Object)

Comprueba si el valor del campo de datos es válido.Checks that the value of the data field is valid.

IsValid(Object, ValidationContext) IsValid(Object, ValidationContext) IsValid(Object, ValidationContext) IsValid(Object, ValidationContext)

Valida el valor especificado con respecto al atributo de validación actual.Validates the specified value with respect to the current validation attribute.

(Inherited from ValidationAttribute)
Match(Object) Match(Object) Match(Object) Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)
Validate(Object, String) Validate(Object, String) Validate(Object, String) Validate(Object, String)

Valida el objeto especificado.Validates the specified object.

(Inherited from ValidationAttribute)
Validate(Object, ValidationContext) Validate(Object, ValidationContext) Validate(Object, ValidationContext) Validate(Object, ValidationContext)

Valida el objeto especificado.Validates the specified object.

(Inherited from ValidationAttribute)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Se aplica a

Consulte también: