myusufaya
 
  WELCOME
  C# Değişkenler [ video linkli ]
  contextMenuStrip Kullanımı[C#]
  Dosya(File) İşlemleri Örneği[C#]
  C# 'da yapılmış alarm programı
  C#’ta Yapıcı Metotlar(Constructors)
  CheckedListBox Kullanımı[C#]
  C # Döngüler [ video linkli ]
  Form Üzerinde Nesneleri Sürükle-Bırak[C#]
  Ekran koruyucu yapımı [ C# ]
  C# 'da paint kullanımı
  ASP.Net ile PDF Dosya Oluşturmak
  ASP.net Nitelik(Attribute) Bazlı Veri Doğrulama(Validation)
  Asp.Net PopupMessageBox
  ASP.Net ve Validation Kontrolleri
  Basit bir form yapmak
  ASP.NET Custom Control Gelistirme - Rollover Image Link
  faydalı bilgiler
  ASP.NET MVC2 - Model Bağlayıcılar ve Değer Sağlayıcılarnın başlığı
  İletişim
ASP.net Nitelik(Attribute) Bazlı Veri Doğrulama(Validation)

Reguired: Boş geçilemez alanlara uygulanır.
StringLength: Veri uzunluğu belli bir karakter sayısını geçemez alanlar için uygulanır.
Range : Değeri belli bir aralık dışına çıkamayacak alanlar için uygulanır.
Regular Expression : Belli bir formatta oluşturulması gereken alanlar için uygulanır.

Şimdi örnek bir uygulama yaparak yukarıda bahsettiklerimizi koda dökelim. Öncelikle bir web projesi açıyoruz. Projemize aşağıdaki gibi çok fonksiyonel olmayan basit bir sınıf yazıyoruz.

10 public class Uye
11 {
12 public int ID { get; set; }
13 [Required(AllowEmptyStrings = false, ErrorMessage = "Ad bilgisi boş geçilemez.")]
14 public string Ad { get; set; }
15 [Required(AllowEmptyStrings = false, ErrorMessage = "Soyad bilgisi boş geçilemez.")]
16 public string Soyad { get; set; }
17 [Range(18, 65, ErrorMessage = "Yaş 18'den küçük 65'ten büyük olamaz.")]
18 public int Yas { get; set; }
19 [StringLength(11, ErrorMessage = "Telefon bilgisi 11 haneli olmalıdır.",MinimumLength=11)]
20 [Required(ErrorMessage = "Telefon bilgisi boş geçilemez.")]
21 public string Telefon { get; set; }
22 [RegularExpression(@"w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*", ErrorMessage = "Mail adresini istenilen formatta giriniz.")]
23 public string Mail { get; set; }
24 }

Daha sonrasında özelliklerimize yazdığımız doğrulama kontrollerini kullanmak amacıyla kendi validasyon kontrolümüzü yazıyoruz.


Kendi yazdığımız validasyon kontrolü Asp.net validasyon kontrollerinin özelliklerini sağlayabilmesi için BaseValidator sınıfından kalıtılır. Yukarıda da görüleceği gibi kendi kontrolümüzün 2 tane özelliği bulunuyor:

PropertyName : Bu validasyon kontrolünün sınıf (buradaki Uye sınıfı )üzerindeki hangi özelliği doğrulayacağını (Validate) gösteren özelliktir.
ObjectType : Bu validasyon kontrolünün hangi sınıfta kullanacağını gösteren özelliktir.


GetControlValidationValue(ControlToValidate) metodu; BaseValidator sınıfından gelen ControlToValidate özelliğini parametre alarak validasyonu yapılmak istenen özelliğin değerini string olarak geri döndürür. Buradaki ControlToValidate özelliği web sayfası tarafında validasyonu yapılmak istenen kontrolün adıdır.


Yukarıdaki kod parçasında PropertyName ile belirtilen sınıfa ait ilgili özelliğinin ValidationAttribute sınıfından kalıtılan nitelikleri bir diziye alınır. Daha sonra döngü ile her nitelikte gezilerek IsValid metodu çağırılarak şartı sağlayıp sağlamadığına bakılır. Şartı sağlamayan ilk validasyonda yine BaseValidator sınıfından gelen ErrorMessage özelliğine sınıfının özelliğinin ilgili ValidationAttribute’una yazılan hata mesajı set edilir.

12 [ToolboxData("<{0}:DataAnnotationValidator runat=server></{0}:DataAnnotationValidator>")]
13 public class CustomValidator:BaseValidator
14 {
15 public string PropertyName { get; set; }
16 public string ObjectType { get; set; }
17
18 protected override bool EvaluateIsValid()
19 {
20 Type type = Type.GetType(ObjectType);
21 PropertyInfo pi = type.GetProperty(PropertyName);
22 string value = GetControlValidationValue(ControlToValidate);
23
24 ValidationAttribute[] validationAttribues = pi.GetCustomAttributes(typeof(ValidationAttribute), false) as ValidationAttribute[];
25 for (int i = 0; i < validationAttribues.Length; i++)
26 {
27 if (!validationAttribues[i].IsValid(value))
28 {
29 ErrorMessage = validationAttribues[i].ErrorMessage;
30 ToolTip = validationAttribues[i].ErrorMessage;
31 return false;
32 }
33 }
34 return true;
35 }
36 }

 
 
   
Bugün 22 ziyaretçi (33 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol