Aracılığıyla paylaş


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ünümünü ö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. Microsoft SQL Server Ürün Örnekleri: GitHub'da 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, tür olarak EmailAddress e-posta adreslerini içeren bir dize veri alanı 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 bir veri alanına uygulayarak DataTypeAttribute 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.

Daha fazla bilgi için bkz. ASP.NET Dinamik Veri Yönergeleri.

Oluşturucular

DataTypeAttribute(DataType)

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

DataTypeAttribute(String)

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

Özellikler

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

Equals(Object)

Bu örneğin belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri 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ğe ilişkin karma kodu döndürür.

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

Type Geçerli örneğini 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)

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

IsValid(Object, ValidationContext)

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

(Devralındığı yer: ValidationAttribute)
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 Objectöğesinin sığ bir kopyasını oluşturur.

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

Geçerli nesneyi temsil eden dizeyi 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ı

_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 sunulan özelliklere ve yöntemlere erişim sağlar.

(Devralındığı yer: Attribute)

Şunlara uygulanır

Ayrıca bkz.