geÇerlİlİk kontrollerİ valİdatİon...
TRANSCRIPT
GEÇERLİLİK KONTROLLERİ
VALİDATİON CONTROLS
Öğr. Gör. Emine TUNÇEL
Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu
Giriş
• Kullanıcı bilgilerinin istenilen kriterlere uygun olup olmadığını
denetlemek amacıyla kullanılan kontrollerdir
• Örneğin kullanıcının bir alanı boş bırakmasını engellemek,
girilecek şifre için karakter sayısını belirlemek gibi..
• ASP.NET de 5 adet geçerlilik kontrolü
mevcuttur:
1) RangeValidator
2) RequiredFieldValidator
3) CompareValidator
4) RequiredExpressionValidator
5) CustomValidator
• ValidationSummary ise bir geçerlilik denetim
kontrolü değil, bu kontrollerden gelen
mesajların verildiği yerdir.
Geçerlilik Kontrolleri
• Kullanıcının belirtilen aralıklarda değer girmesini sağlar.
1. RangeValidator Kontrolü
• ControlToValidate : Hangi kontrole girilen değerlerin denetleneceğini
belirten özelliktir.
• ErrorMessage: Belirtilen aralıklarda değer girilmediğinde gösterilecek hata
mesajını belirtir.
• MaximumValue : ControlToValidate özelliği ile belirtilen kontrole
girilebilecek en yüksek değerin belirtildiği özelliktir
• MinimumValue : ControlToValidate özelliği ile belirtilen kontrole
girilebilecek en küçük değerin belirtildiği özelliktir
• Type: ControlToValidate özelliği ile belirtilen kontrole hangi tür verilen
girilebileceğini belirtir.
Geçerlilik Kontrolleri
• Kullanıcının belirtilen aralıklarda değer girmesini sağlar.
1. RangeValidator Kontrolü
• ControlToValidate : Hangi kontrole girilen değerlerin denetleneceğini
belirten özelliktir.
• ErrorMessage: Belirtilen aralıklarda değer girilmediğinde gösterilecek hata
mesajını belirtir.
• MaximumValue : ControlToValidate özelliği ile belirtilen kontrole girilecek
değer aralığının üst sınırını belirtir.
• MinimumValue : ControlToValidate özelliği ile belirtilen kontrole girilecek
değer aralığının alt sınırını belirtir.
• Type: ControlToValidate özelliği ile belirtilen kontrole hangi tür verilen
girilebileceğini belirtir.
Geçerlilik Kontrolleri
• Denetleme işlemi 2 farklı şekilde yapılabilir:
– Client taraflı javascript ile yapılan kontrol. Bu yöntemde bizim sayfaya herhangi bir Javascript kodu eklememize gerek yoktur. Geçerlilik kontrollerinden biri sayfaya eklendiğinde ASP.NET otomatik olarak bu javascript kodlarını ekler. Böylece sayfa sunucuya gitmeden geçerlilik denetimi yapılır. Eğer geçerli değilse sayfa sunucuya post edilmez.
– Sunucu taraflı yapılan kontrol. Bu yöntemde sayfa sunucuya gönderilir denetimi sunucu yapar. Özellikle browser’lardaki güvenlik amaçlı JavaScript kullanımının iptal edildiği durumlarda kullanışlıdır. Bunun için geçerlilik kontrolü bildirimimize EnableClientScript="False" gibi bir ifade eklemeliyiz. Sunucu
taraflı denetimde sayfanın geçerliliğini if(Page.IsValid) ifadesiyle kontrol edebiliriz. Eğer sayfa geçerli değilse yani tanımladığımız kıstaslar içinde değerler girilmediyse istenilen işlemler yapılmaz.
1. RangeValidator Kontrolü
Geçerlilik Kontrolleri
• Değer girilmesi zorunlu olan alanları kontrol eden denetim
kontrolüdür.
2. RequiredFieldValidator Kontrolü
• ControlToValidate : kontrol edilecek olan alanın (web kontrolünün) id si
burada belirtilir.
• ErrorMessage: Giriş yapılmamışsa hata mesajının yazılacağı alandır
Geçerlilik Kontrolleri
• RequiredFieldValidator yalnızca boş alan olup olmadığını
kontrol etmez. Aynı zamanda önceden tanımlanan değerler
içinde geçerlilik denetimi yapar.
• Özellikle liste web kontrollerinin kullanımında bu özellikten
faydalanılır.
• Bunun için InitialValue bildirimi yapmalıyız
• Örneğin açılır listeden bir seçim yapılmadığında hata
oluşmasını sağlayalım.
2. RequiredFieldValidator Kontrolü
Geçerlilik Kontrolleri
• Öncelikle kontrol edilecek elemanı yani DropDownList
kontrolünü sayfaya ekleyip aşağıdaki gibi düzenleyelim
2. RequiredFieldValidator Kontrolü
• Daha sonra RequiredFieldValidator geçerlilik kontrolünü ekleyelim:
• Burada InitialValue="bos" bildirimi ile kontrol edilen alandan
geri dönecek olan değerin "bos" olması durumunda geçersiz
girdi olduğu belirtilir
• :
Geçerlilik Kontrolleri
• CompareValidator, temel olarak değerleri karşılaştıran bir kontroldür.
• 3 tip geçerlilik denetimi yapar.
• Bunlardan ilki girilen değer tipinin tanımlanan değer tipine eşit olup olmadığının kontrolünü yapar. Örneğin bir metin alanına tarih tipli bir değer girilmesi gerekiyorsa CompareValidator kontrolünün tipini Date olarak atayarak tarih formatındaki girdileri geçerli kılabiliriz.
• Diğer bir kullanım şekli sabit bir değer tanımlayarak girdinin bununla karşılaştırılmasıdır. Örneğin bir açık arttırma sitesinde girilen en son değeri sabit kabul ederek bundan yüksek değerin geçerli kabul edilmesi gibi.
• Son olarak form elemanlarının birbirine göre karşılaştırılmasının yapılmasıdır. Örneğin şifre tekrar şifre alanlarının aynı olması gibi.
3. CompareValidator Kontrolü
Geçerlilik Kontrolleri
• CompareValidator ile tip kontrolü
3. CompareValidator Kontrolü
• Örneğimizde denetimin Operator="DataTypeCheck" ile veri
tipi şeklinde yapılacağını, bu tipin de Type="Date" ile
tarih olacağını belirtiyoruz
• Diğer bir ifadeyle metin kutusuna girilen değerin tarih
formatında olup olmadığını kontrol ediyoruz
Geçerlilik Kontrolleri
• CompareValidator ile sabit değer kontrolü
3. CompareValidator Kontrolü
• Bu örneğimizde de metin kutusuna girilebilecek değerlerin 100 ve daha
küçük olmasını sağladık.
• Burda farklı olarak ValueToCompare metodu ile kıyaslama yapılacak
değeri bildirim kısmında belirttik
Geçerlilik Kontrolleri
• CompareValidator ile form elemanlarını kıyaslama
3. CompareValidator Kontrolü
• Diğer örneklerimizden farklı olarak bur da kullanıcının değer girdiği iki
kutucuk var. İnteger olarak tutulan bu değerlerin eşit olmasını istiyoruz.
Bunun için
ControlToCompare="TextBox1"
ControlToValidate="TextBox2"
• bildirimini kullandık
Geçerlilik Kontrolleri
• RegularExpression’lar String’ler için format tanımlamaya
yarayan özel ifadelerdir.
• Örneğin bir e-posta formatını özel ifadelerle belirleyip girişin o
formatta olup olmadığını bu sayede kontrol edebiliriz.
4. RegularExpressionValidator Kontrolü
• Örneğimizde RegularExpression tanımı ValidationExpression özelliği ile belirtildi.
• RegularExpression ile ilgili daha fazla bilgiyi http://regexlib.com/default.aspx
adresinden alabilirsiniz. Bu adreste değişik kalıplar için Regular Expression
tanımları bulabilirsiniz.
Geçerlilik Kontrolleri
• Sunucu kontrolleri üzerinde denetim yapmak için bizim
tarafımızdan tanımlanmış, kurallarını bizim belirlediğimiz
bir denetim kontrolüdür
• Örneğin bir kullanıcıdan alınacak şifrenin en az 8
karakter olması ve içinde en az bir rakamın bulunması
şeklinde bir kural tanımlanıp, girilen değerlerin uygun
olup olmadığı denetlenebilir.
• CustomValidator, ClientSide ve ServerSide olmak üzere
2 farklı şekilde yapılabilir.
5. CustomValidator Kontrolü
Geçerlilik Kontrolleri
• Custom Validator – Server Side
5. CustomValidator Kontrolü
• onservervalidate olayında çalışacak denetim adlı metod :
• Bu metod ServerValidateEventArgs isminde özel bir argüman döndürür.
Tanımladığımız koşulun gerçekleşmesi durumunda bu argümanın
IsValid özelliğine true değeri atanır. Aksi takdirde false değeri ile denetim
sağlanmamış olur ve ErrorMessage ile belirtilen mesaj ekrana yazılır
Geçerlilik Kontrolleri
• Custom Validator – Server Side
5. CustomValidator Kontrolü
• onservervalidate olayında çalışacak parola_denetim adlı metot :
Geçerlilik Kontrolleri
• Custom Validator – Server Side
5. CustomValidator Kontrolü
Geçerlilik Kontrolleri
• Custom Validator – Örnek
5. CustomValidator Kontrolü
Geçerlilik Kontrolleri
• Custom Validator – Örnek
5. CustomValidator Kontrolü
Geçerlilik Kontrolleri
• Custom Validator – Örnek
• Sayfamızın işleyişi şu şekilde:
• Sayfa ilk yüklendiğinde karşımıza bir soru çıkacak ve metin
kutusuna 10 sn içinde bir cevap girilmesi beklenecek. Bu süre
içinde cevap girilmemişse metin girişi geçersiz kabul edilecek
• Bunu sağlamak için Session değişkenlerinden faydalanıyoruz.
Session’a şimdiki zamanı atayıp daha sonra Butona
tıklandığında 10 sn eklenmiş session zamanımız ile
karşılaştırıyoruz. Duruma göre IsValid’e true veya false değeri
veriyoruz. Diğer bir ifadeyle geçerli veya geçersiz kılıyoruz
• Bu metodu da CustomValidator’de
onservervalidate="sure_denetimi" bağlıyoruz.
5. CustomValidator Kontrolü
Geçerlilik Kontrolleri
• Bu kontrol aslında bir geçerlilik denetimi yapmaz.
• Diğer geçerlilik kontrollerinin bir özetini gösterir.
• Pek çok alandan oluşan uzun bir formunuz olduğunu
düşünün.
• Kullanıcı formun sonuna ya da başına geldiğinde o
zamana kadar eksik ya da geçersiz girdi hata mesajlarını
tek tek form elemanlarının yanında aramak yerine
hepsini derli toplu bir yerde görmesi oldukça kullanışlı bir
özelliktir.
• İşte ValidationSummary bunu sağlıyor
ValidationSummary
Geçerlilik KontrolleriValidationSummary
• KAYNAK
• C# ile ASP.NET
• Zafer Demirkol