DataTypeAttribute Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ü
String
olan 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) |