Validation (Onaylama) Kontrolleri

Eyl 06, 2013
Onaylama kontrolünün amacı Web uygulamalarında kullanıcıların girmiş olduğu verilerin veritabanına kaydedilmeden önce istenen şartları sağlayıp sağlamadığını kontrol etmektir. Bu şartlar veri girilen alanın boş bırakılmaması, verinin istenen biçimde olması, verinin herhangi bir değerden büyük ya da küçük olması vs. olabilir. Onaylama kontrolleri programlama aşamasında programcılara büyük kolaylık ve hız kazandırır. Ayrıca bu kontrollerin, uygulamanın çalışması sırasında, işlemleri clint-side (istemci tarafında) yapması da pek çok kolaylık sağlar.

Onaylama kontrolleri kısaca şöyle açıklanabilir:

  • RequiredFieldValidator (Gerekli Alan Onaylayıcı): Boş bırakılması istenmeyen, mutlaka veri girişi yapılması gereken alanlar için kullanılır.
  • RangeValidator (Genişlik Onaylayıcı) : Bir alana girilen verinin belirli değerler arasında olmasını kontrol eder.
  • RegularExpressionValidator (Düzenli İfade Onaylayıcı): Girilen verinin belirli bir biçime uymasının istendiği durumlarda kullanılır. Örneğin e-posta adresi istendiği durumlarda kullanılabilir.
  • CompareValidator (Karşılaştırıcı): İki farklı alana girilen verilerin veya bu verilerin veri tiplerinin aynı olmasının gerektiği durumlarda kullanılır.
  • CustomValidator (Özel Onaylayıcı): Standart onaylama kontrollerinin yetersiz kaldığı, farklı algoritmalar içeren durumlarda veya birden fazla onaylama kontrolünün tek bir kontrol üzerinde birleşmesi istenen durumlarda kullanılır.
  • ValidationSummary (Onaylama Özeti): Diğer onaylama kontrolleri tarafından oluşturulan hata mesajlerının listesinin gösterilmesi için kullanılır.

Uygulama:

Bir Web sitesine kayıt için kullanıcı adı ve şifre bilgilerinin girildiği bir uygulama aşağıdaki şekilde yapılır. Bu sayfada kullanıcı adının girilmesi zorunludur. Bu alan içinRequiredFieldValitor kontrolü kullanılır ve bu kontrolün .aspx sayfasındaki görüntüsü aşağıdaki gibidir:

<asp:RequiredFieldValidator ID="rfvKullaniciAdi" runat="server" ErrorMessage="Lütfen Bir Kullanıcı Adı Belirleyiniz" ValidationGroup="grup1" ControlToValidate="tbKullaniciAdi" Text="*">
</asp:RequiredFieldValidator>


Burada kullanılan ValidationGroup (Onaylama Grubu) özelliği birden fazla onaylama kontrolünü gruplamak için kullanılır. Uygulamadaki bütün kontrollerde kullanılan ve hepsi için değeri "grup1" olan bu özellik ile yine ValidationGroup özelliği "grup1" olan bir tuşun tıklanmasıyla bütün kontroller aktif hale getirilir.
ControlToValidate özelliği hangi alanın kontrol edildiğini belirler. Burada "tbKullaniciAdi" alanı kontrol edilir.
ErrorMessage (Hata Mesajı) kullanıcıya gösterilen hata mesajıdır. tbKullaniciAdi alanı boş bırakılırsa kullanıcı bu hatayı alır.

RangeValidator kontrolü girilen şifrenin 5 ile 8 karakter arasında olmasını kontrol eder:

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="tbSifre" ErrorMessage="Şifreniz 5 ile 8 Karakter Arasında Olmalıdır" Text="**" ValidationGroup="grup1" MaximumValue="999999" MinimumValue="100" Type="Integer">
</asp:RangeValidator>

"tbSifre" alanı kontrol edilir. Burada farklı olarak MaximumValue (En Büyük Değer) ve MinimumValue (En Küçük Değer) özellikleri kullanılmıştır. Bu özellikler şifrenin alabileceği en büyük ve en küçük değerleri belirler. Eğer girilen veri bu değerler arasında değilse kullanıcı hata mesajı alır. Ayrıca Type (Tip) özelliği ile girilen şifrenin Integer (Tamsayı) tipinde olduğu belirtilmiştir.

CompareValidator kontrolü ile tekrar girilmesi istenen şifrenin ilk girilen ile aynı olup olmadığı kontrol edilir:

<asp:CompareValidator ID="cvtbReSifre" runat="server" ErrorMessage="Şifre Doğrulanamadı" Text="***" ControlToValidate="tbReSifre" ControlToCompare="tbSifre" ValidationGroup="grup1">
</asp:CompareValidator>

ControlToValidate özelliğinin değeri olan "tbReSifre" alanı ile ControlToCompare özelliğine karşılık gelen "tbSifre" alanı karşılaştırılır. Eğer girilen değerler aynı değilse kullanıcı hata mesajı alır.

Aşağıdaki ValidationSummary kontrolü ValidationGroup özelliği "grup1" olan kontrollerin hata mesajlarının görünmesini sağlar. ShowSummary (Özeti Göster) özelliğinin değerinin "true (doğru)" olması gerekmektedir.

<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowSummary="true" ValidationGroup="grup1" /> 

Web sayfasının görüntüsü şu şekilde olur:

Kullanıcı adı boş bırakılarak Kaydet tuşu tıklanırsa aşağıdaki görüntü alınır:

Kullanıcı adı girildiği halde şifre 4 haneli girilip, Kaydet tıklanırsa aşağıdaki görüntü alınır:

Şifre değeri 6 hane girildiği halde tekrar girilen şifre hatalı iken Kaydet tıklanırsa aşağıdaki görüntü alınır: