DataTypeAttribute Sınıf

Tanım

Veri alanıyla ilişkilendirilecek ek türün adını belirtir.

public ref class DataTypeAttribute : System::ComponentModel::DataAnnotations::ValidationAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Method | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false)]
public class DataTypeAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute
[System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false)]
public class DataTypeAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Method | System.AttributeTargets.Parameter | System.AttributeTargets.Property, AllowMultiple=false)>]
type DataTypeAttribute = class
    inherit ValidationAttribute
[<System.AttributeUsage(System.AttributeTargets.Field | System.AttributeTargets.Property, AllowMultiple=false)>]
type DataTypeAttribute = class
    inherit ValidationAttribute
Public Class DataTypeAttribute
Inherits ValidationAttribute
Devralma
Türetilmiş
Öznitelikler

Örnekler

Aşağıdaki örnek, EmailAddress veri alanının görünümünü özelleştirmek için özniteliğini kullanır DataTypeAttribute . E-posta adresleri, dinamik verilerin iç veri türünden çıkaracağı basit metin yerine köprü olarak gösterilir. Örnek kod üç bölümden oluşur ve aşağıdaki adımları gerçekleştirir:

  • Bir meta veri kısmi sınıfını ve ilişkili meta veri sınıfını uygular.

  • İlişkili meta veri sınıfında, numaralandırılmış değeri belirterek EmailAddress veri alanına özniteliğini EmailAddress uygularDataTypeAttribute. Bu, Text.ascx alan şablonuna e-posta adreslerinin görüntülenmesini özelleştirmesi gerektiğini gösterir.

  • EmailAddress veri alanlarının görünümünü özelleştirmek için Text.ascx alan şablonunu değiştirir.

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.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.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

Örnek kodu derlemek ve çalıştırmak için aşağıdakilere ihtiyacınız vardır:

  • Visual Studio 2010 veya sonraki sürümleri.

  • AdventureWorksLT örnek veritabanı. SQL Server örnek veritabanını indirme ve yükleme hakkında bilgi için bkz. GitHub üzerinde Microsoft SQL Server Ürün Örnekleri: Veritabanı. Çalıştırdığınız SQL Server sürümü için örnek veritabanının doğru sürümünü yüklediğinizden emin olun.

  • Veri temelli bir Web sitesi. Bu, veritabanı için bir veri bağlamı oluşturmanıza ve özelleştirebileceğiniz veri alanını içeren sınıfı oluşturmanıza olanak tanır. Daha fazla bilgi için bkz. Walkthrough: Creating a New Dynamic Data Web Site using Scaffolding.

Açıklamalar

özniteliği, DataTypeAttribute veritabanı iç türünden daha özel bir tür kullanarak alanları işaretlemenizi sağlar. Tür adı numaralandırma türünden DataType seçilir. Örneğin, e-posta adreslerini içeren bir dize veri alanı türü olarak EmailAddress belirtilebilir. Bu bilgilere daha sonra veri alanının işlenme biçimini değiştirmek için alan şablonları tarafından erişilir.

özniteliğini DataTypeAttribute aşağıdaki nedenlerle kullanırsınız:

  • Veri alanı için ek tür bilgileri sağlamak için. Bunu, özniteliğini veri modelindeki DataTypeAttribute bir veri alanına uygulayarak ve numaralandırmadan DataType ek tür adını belirterek yaparsınız. Veri alanını işleyen alan şablonu, alanın nasıl işleneceğini belirlemek için bu ek meta veri türü bilgilerine erişebilir. Örneğin, metin alanı şablonu, iç türü Stringolan e-posta adresleri için köprüler oluşturabilir.

  • Özel alan şablonunu bir veri alanıyla ilişkilendirmek için. Belirtilen özel alan şablonu daha sonra veri alanını işlemek için kullanılır. Bu, özniteliğini UIHintAttribute kullanmaya alternatiftir.

Özniteliği bir veri alanına uyguladığınızda DataTypeAttribute aşağıdakileri yapmanız gerekir:

  • Öznitelik kullanım kurallarını izleyin.

  • Özniteliğini uygulamak istediğiniz veri alanlarını içeren meta veri sınıfını uygulayın.

  • Doğrulama hatalarını uygun şekilde sorun.

Oluşturucular

Name Description
DataTypeAttribute(DataType)

Belirtilen tür adını kullanarak sınıfın DataTypeAttribute yeni bir örneğini başlatır.

DataTypeAttribute(String)

Belirtilen alan şablonu adını kullanarak sınıfın DataTypeAttribute yeni bir örneğini başlatır.

Özellikler

Name Description
CustomDataType

Veri alanıyla ilişkili özel alan şablonunun adını alır.

DataType

Veri alanıyla ilişkili türü alır.

DisplayFormat

Veri alanı görüntüleme biçimini alır.

ErrorMessage

Doğrulama başarısız olursa bir doğrulama denetimiyle ilişkilendirilecek bir hata iletisi alır veya ayarlar.

(Devralındığı yer: ValidationAttribute)
ErrorMessageResourceName

Doğrulama başarısız olursa özellik değerini aramak ErrorMessageResourceType için kullanılacak hata iletisi kaynak adını alır veya ayarlar.

(Devralındığı yer: ValidationAttribute)
ErrorMessageResourceType

Doğrulama başarısız olursa hata iletisi araması için kullanılacak kaynak türünü alır veya ayarlar.

(Devralındığı yer: ValidationAttribute)
ErrorMessageString

Yerelleştirilmiş doğrulama hata iletisini alır.

(Devralındığı yer: ValidationAttribute)
RequiresValidationContext

Özniteliğin doğrulama bağlamı gerektip gerektirmediğini gösteren bir değer alır.

(Devralındığı yer: ValidationAttribute)
TypeId

Türetilmiş bir sınıfta uygulandığında, bu Attributeiçin benzersiz bir tanımlayıcı alır.

(Devralındığı yer: Attribute)

Yöntemler

Name Description
Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
FormatErrorMessage(String)

Hatanın oluştuğu veri alanına göre bir hata iletisine biçimlendirme uygular.

(Devralındığı yer: ValidationAttribute)
GetDataTypeName()

Veri alanıyla ilişkili türün adını döndürür.

GetHashCode()

Bu örneğin karma kodunu döndürür.

(Devralındığı yer: Attribute)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
GetValidationResult(Object, ValidationContext)

Belirtilen değerin geçerli doğrulama özniteliğine göre geçerli olup olmadığını denetler.

(Devralındığı yer: ValidationAttribute)
IsDefaultAttribute()

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin değerinin türetilmiş sınıf için varsayılan değer olup olmadığını gösterir.

(Devralındığı yer: Attribute)
IsValid(Object, ValidationContext)

Belirtilen değeri geçerli doğrulama özniteliğine göre doğrular.

(Devralındığı yer: ValidationAttribute)
IsValid(Object)

Veri alanının değerinin geçerli olup olmadığını denetler.

Match(Object)

Türetilmiş bir sınıfta geçersiz kılındığında, bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

(Devralındığı yer: Attribute)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
Validate(Object, String)

Belirtilen nesneyi doğrular.

(Devralındığı yer: ValidationAttribute)
Validate(Object, ValidationContext)

Belirtilen nesneyi doğrular.

(Devralındığı yer: ValidationAttribute)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir arabirimin tür bilgilerini almak için kullanılabilecek bir nesnenin tür bilgilerini alır.

(Devralındığı yer: Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

(Devralındığı yer: Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.