Cuma, 23 Mart 2012 08:17

Asp.Net Validation Kontrolleri

Yazan
Öğeyi Oyla
(6 oy)

Web form üzerindeki kontrollere istediğimiz bilgilerin, istediğimiz format ile girilmesine Validating denir. Kullanıcıların hatasız ve eksiksiz olarak formların doldurulmasında önemli rol oynamaktadır. Ayrıca bu kontrollerin çalışması için Internet Explorer 4 ve üstü olması gerekmektedir.

REQUIREDFIELDVALIDATOR

Web formunda kullanıcı adı, şifre gibi kullanıcı tarafından mutlaka doldurulması gereken alanların boş geçilip geçilmediğini denetlemek için kullanılır. Her Form nesnesi için ayrı ayrı RequiredFieldValidator eklemek gerekmektedir.

 Display: Üç seçenek içermektedir: Static, Dynamic, None Bu seçenekleri kullanarak kontrolün hata mesajını gösterip veya saklayabilirsiniz.

 -Static: Mesajın gösterilmesi için gerekli alan başlangıçta ayrılır.

 -Dynamic : Hata mesajının gösterilmesi için yer ayrılmaz ve gerektiğinde sayfanın diğer içeriği ile yer değiştirilerek gösterilir.

 -None: ValidationSummary kullanılmadıkça hata mesajı gösterilmez.

 ErrorMessage : Konrol denetimi sonrasında eğer belirlenen web kontrolüne bir değer girilmez ise kullanıcıya verilecek uyarı mesajını bu alanda belirlemekteyiz.

 Text : ErrorMessage ile aynı işlemi yapmaktadır. Konrol denetimi sonrasında eğer belirlenen web kontrolüne bir değer girilmez ise kullanıcıya verilecek uyarı mesajını bu alanda belirlemekteyiz.

 ControlToValidate: Bu seçenek ise hangi web kontrolü üzerinde denetleme yapacağını belirtmektedir Bu örneğimizde bizler TextBox1 in boş geçilip geçilmediğinin kontrol edeceğiz.

 InitialValue : Bu alan ise geçerlilik denetiminin textbox gibi değer girilen bir web kontrolü değil de dropdownlist gibi değer seçilmesi gereken bir web kontrolü ise herhangi bir değer seçilip seçilmediğinin kontrolünün yapılacağı alandır.

 requiredfieldvalidator

ControlToValidate kısmından hangi kontrolü validate edeceğini seçiyoruz. Ve text kısmına vereceğimiz uyarı mesajını yazıyoruz. Dropdownlistin value değerini ise Reguiredfieldvalidator2’nin InitialValue kısmına yazdığımızda ise bir değer seçilip seçilmediğini kontrol ediyoruz.  

  

RANGEVALIDATOR

Bu Kontrol bir Form nesnesinin belirlenen aralık içerisinde olup olmadığını denetlemek için kullanılır. Properties’den MaximumValue ve MinumumValue olarak değerler verilir.

  • MaximumValue: Form Nesnesine verilebilecek maksimum değeri göstermektedir. Bu değerden yüksek bir sayı girildiğinde RangeValidator kontrolü aktif hale gelir.
  • MinumumValue: Bu seçenek ise Form nesnesine verilebilecek minimum değeri göstermektedir. Bu değerden düşük bir sayı girildiğinde RangeValidator kontrolü aktif hale gelir.
  • Type: Bu seçenek ise Form nesnesi içerisindeki verinin hangi tipte algılanacağını belirtmektedir. Bu değerler Double, String, İnteger, Date, Currency tipinde olabilir.

 

 

ControlToValidate kısmından hangi kontrolü validate edeceğini seçiyoruz. RangeValıdator’lerin text kısmına vereceğimiz uyarı mesajını yazıyoruz. MaximumValue ve MinimumValue kısmına değerler giriyoruz. Type kısmından veri türünü seçiyoruz.

 

REGULAREXPRESSIONVALIDATOR

 

Bu Kontrol veri girişinde belli biçimler kullanılmasını sağlar. Mesela e-mail adresinde kullanılan @ ve nokta işaretinin kontrolünü yapmak bu validator’ün görevidir. ValidationExpression kısmından uygulanacak format seçilir. Burada e-mail, web site adresi, telefon numarası ve posta kodu gibi hazır kalıplar mevcuttur.

Bizim tanımlayabileceğimiz özel formatlar için Custom seçilir. Eğer istenirse bu liste dışından istediğimiz formatı biz belirleyebiliriz. Örneğin T.C. kimlik numarası bildiğiniz gibi 11 rakamdan oluşur. Bunun için \d{11} yazarak bu TextBox’a 11 rakam girmeye zorlayabiliriz. Aynı işlemi biraz daha uzun yolla “|” karakterini (OR) kullanarak da

(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9) yapabiliriz.

 

ControlToValidate kısmından hangi kontrolü validate edeceğini seçiyoruz. RegularExpressionValidator’lerin text kısmına vereceğimiz uyarı mesajını yazıyoruz.

Validationexpression kısmına e mail kontrolü yapacağımız için e-mail formatını seçiyoruz. Ya da \w+\w*\@\w+\w+\w*\.(com|edu|org|gov|com.tr|org.tr|net|net.tr) yazıyoruz.

TC Kimlik No için ValidationExpression kısmına \d{11} yazıyoruz.

Password’ün en az 4 ile en fazla 8 karakter olması için ValidationExpression kısmına \w{4,8} yazıyoruz.

  

COMPAREVALIDATOR

Değer kıyaslaması için kullanılan kontroldür. Input kontrolü içindeki değeri kıyaslar. ControltoCompare kısmından hangi input kontrolü ile kıyaslayacağı seçilir ve iki değerin aynı olmaması durumunda hata mesajı çıkar.

ControlToValidate özelliği ile hangi kontrolün geçerlilik testi yapılacağını belirleriz.
ErrorMessage özelliği ile geçerlilik ihlal edildiğinde sayfada görünmesini istediğimiz mesaj yazılır.
ValueToCompare özelliği ile bizim girdiğimiz bir değere göre karşılaştırma yapılır.
ControlToCompare özelliği ile sayfadaki aynı veri türünde bilgi içeren başka bir kontrol elemanı ile karşılaştırma yapılır.
Type özelliği ile geçerlilik testi yapılacak kontrolün veri türü belirlenir.
Operatör özelliği ile karşılaştırma operatörü seçilir.



CompareValidator1 özellikleri

 

 CompareValidator2 özellikleri

 

  

  

  

 CUSTOMVALIDATOR

Kendimize özel validator oluşturmak için kullanılır. True ve False değerlerini args.IsValid özelliği ile kontrol ederiz.



CustomValidator üzerine çift tıklayıp karşımıza gelen CustomValidator1_ServerValidate event’ına aşağıdaki kod yazılır.


protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)   

  {       

  int i = Convert.ToInt32(args.Value);     

    if (i % 2 == 0)        

{  

args.IsValid = true;

 }       

  else

 {

args.IsValid = false;

}  


Bu kodlarda kontrole girdiğimiz değeri, args.Value değeri yakalıyor. Bu değeri i değişkenine atıyoruz. Hata mesajını çıkmasını istediğimiz durumda args.IsValid değerini False, eğer bilgi doğru ise args.IsValid değerini True yapıyoruz. Textbox1’e tek rakam girildiğinde karşımıza hata mesajı çıkacak, çift sayı girdiğinde bu mesaj ile karşılaşmayacağız.
 

VALIDATIONSUMMARY


Sayfanın doğru olup olmadığını tespit eden özellik Page.IsValid’dir. Eğer bu değer False olarak dönerse, tüm validation hatalarını ValidationSummary havuzuna yollar. ValidationSummary tüm hataların listesini verir. Kontrollerin ErrorMessage kısmına yazılan hata mesajları, bir liste şeklinde görüntülenir. Bu listeye başlık koymak istersek HeaderText kısmına gereken başlık bilgisi yazmak gerekir. ValidationSummary kullanılan sayfalarda, genellikle kontrollerin Text özelliğine * işareti konulur.

RequiredFieldValidator’ün özellik penceresi;

RangeValidator’ün özellik penceresi;

ValidationSummary kontrolünün HeaderText kısmına “Aşağıdaki hataları düzeltin” yazalım. Button1_Click event’ına aşağıdaki kodu yazalım;

protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Label1.Text = "Bilgiler Doğru";
}
}





RequiredFieldValidator’ün özellik penceresi;


RangeValidator’ün özellik penceresi;

ValidationSummary kontrolünün HeaderText kısmına “Aşağıdaki hataları düzeltin” yazalım. Button1_Click event’ına aşağıdaki kodu yazalım;


protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
Label1.Text = "Bilgiler Doğru";
}
}

 




Okunma 12560 defa Son Düzenlenme Pazartesi, 02 Nisan 2012 05:55