DataTypeAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
데이터 필드에 연결할 추가 형식의 이름을 지정합니다.
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
- 상속
- 파생
- 특성
예제
다음 예제에서는 특성을 사용하여 DataTypeAttribute EmailAddress 데이터 필드의 표시를 사용자 지정합니다. 전자 메일 주소는 간단한 텍스트가 아닌 하이퍼링크로 표시됩니다. 즉, 동적 데이터가 기본 데이터 형식에서 유추합니다. 예제 코드는 세 부분으로 구성되어 있으며 다음 단계를 수행합니다.
메타데이터 partial 클래스 및 연결된 메타데이터 클래스를 구현합니다.
연결된 메타데이터 클래스에서 열거형 값을 지정하여 EmailAddress EmailAddress 데이터 필드에 특성을 적용 DataTypeAttribute 합니다. 이는 Text.ascx 필드 템플릿에 전자 메일 주소 표시를 사용자 지정해야 했음을 나타냅니다.
Text.ascx 필드 템플릿을 수정하여 EmailAddress 데이터 필드의 표시를 사용자 지정합니다.
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
예제 코드를 컴파일하고 실행하려면 다음이 필요합니다.
Visual Studio 2010 이상의 모든 버전.
AdventureWorksLT 샘플 데이터베이스입니다. SQL Server 샘플 데이터베이스를 다운로드하고 설치하는 방법에 대한 자세한 내용은 Microsoft SQL Server 제품 샘플: GitHub의 데이터베이스를 참조하세요. 실행 중인 SQL Server 버전에 대해 올바른 버전의 샘플 데이터베이스를 설치해야 합니다.
데이터 기반 웹 사이트입니다. 이렇게 하면 데이터베이스에 대한 데이터 컨텍스트를 만들고 사용자 지정할 데이터 필드가 포함된 클래스를 만들 수 있습니다. 자세한 내용은
Walkthrough: Creating a New Dynamic Data Web Site using Scaffolding
를 참조하세요.
설명
DataTypeAttribute 특성을 사용하면 데이터베이스 내장 형식보다 더 구체적인 형식을 사용하여 필드를 표시할 수 있습니다. 형식 이름은 열거형 형식에서 DataType 선택됩니다. 예를 들어 전자 메일 주소를 포함하는 문자열 데이터 필드를 형식으로 EmailAddress 지정할 수 있습니다. 그런 다음, 필드 템플릿에서 이 정보에 액세스하여 데이터 필드 처리 방법을 수정합니다.
다음과 같은 이유로 특성을 사용합니다 DataTypeAttribute .
데이터 필드에 대한 추가 형식 정보를 제공합니다. 데이터 모델의 데이터 필드에 특성을 적용하고 DataTypeAttribute 열거형에서 DataType 추가 형식 이름을 지정하여 이 작업을 수행합니다. 데이터 필드를 처리하는 필드 템플릿은 이 추가 메타데이터 형식 정보에 액세스하여 필드를 처리하는 방법을 결정할 수 있습니다. 예를 들어 텍스트 필드 템플릿은 내장 형식
String
이 인 이메일 주소에 대한 하이퍼링크를 생성할 수 있습니다.사용자 지정 필드 템플릿을 데이터 필드와 연결하려면 그런 다음 지정된 사용자 지정 필드 템플릿을 사용하여 데이터 필드를 처리합니다. 이는 특성을 사용하는 대신 사용할 UIHintAttribute 수 있습니다.
데이터 필드에 특성을 적용 DataTypeAttribute 하는 경우 다음을 수행해야 합니다.
특성 사용 규칙을 따릅니다.
특성을 적용하려는 데이터 필드가 포함된 메타데이터 클래스를 구현합니다.
유효성 검사 오류를 적절하게 실행합니다.
자세한 내용은 ASP.NET 동적 데이터 지침을 참조하세요.
생성자
DataTypeAttribute(DataType) |
지정된 형식 이름을 사용하여 DataTypeAttribute 클래스의 새 인스턴스를 초기화합니다. |
DataTypeAttribute(String) |
지정된 필드 템플릿 이름을 사용하여 DataTypeAttribute 클래스의 새 인스턴스를 초기화합니다. |
속성
CustomDataType |
데이터 필드에 연결된 사용자 지정 필드 템플릿의 이름을 가져옵니다. |
DataType |
데이터 필드에 연결된 형식을 가져옵니다. |
DisplayFormat |
데이터 필드 표시 형식을 가져옵니다. |
ErrorMessage |
유효성 검사에 실패하는 경우 유효성 검사 컨트롤과 연결할 오류 메시지를 가져오거나 설정합니다. (다음에서 상속됨 ValidationAttribute) |
ErrorMessageResourceName |
유효성 검사에 실패할 경우 ErrorMessageResourceType 속성 값을 조회하는 데 사용할 오류 메시지 리소스 이름을 가져오거나 설정합니다. (다음에서 상속됨 ValidationAttribute) |
ErrorMessageResourceType |
유효성 검사에 실패할 경우 오류 메시지 조회에 사용할 리소스 형식을 가져오거나 설정합니다. (다음에서 상속됨 ValidationAttribute) |
ErrorMessageString |
지역화된 유효성 검사 오류 메시지를 가져옵니다. (다음에서 상속됨 ValidationAttribute) |
RequiresValidationContext |
특성에 유효성 검사 컨텍스트가 필요한지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 ValidationAttribute) |
TypeId |
파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다. (다음에서 상속됨 Attribute) |
메서드
Equals(Object) |
이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
FormatErrorMessage(String) |
오류가 발생한 데이터 필드를 기반으로 하여 오류 메시지에 서식을 적용합니다. (다음에서 상속됨 ValidationAttribute) |
GetDataTypeName() |
데이터 필드에 연결된 형식의 이름을 반환합니다. |
GetHashCode() |
이 인스턴스의 해시 코드를 반환합니다. (다음에서 상속됨 Attribute) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
GetValidationResult(Object, ValidationContext) |
현재 유효성 검사 특성에 따라 지정된 값이 유효한지 확인합니다. (다음에서 상속됨 ValidationAttribute) |
IsDefaultAttribute() |
파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다. (다음에서 상속됨 Attribute) |
IsValid(Object) |
데이터 필드 값이 유효한지 확인합니다. |
IsValid(Object, ValidationContext) |
현재 유효성 검사 특성에 따라 지정된 값이 유효한지 검사합니다. (다음에서 상속됨 ValidationAttribute) |
Match(Object) |
파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
Validate(Object, String) |
지정된 개체의 유효성을 검사합니다. (다음에서 상속됨 ValidationAttribute) |
Validate(Object, ValidationContext) |
지정된 개체의 유효성을 검사합니다. (다음에서 상속됨 ValidationAttribute) |
명시적 인터페이스 구현
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. (다음에서 상속됨 Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. (다음에서 상속됨 Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). (다음에서 상속됨 Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다. (다음에서 상속됨 Attribute) |
적용 대상
추가 정보
.NET