Uyarılar :
- Bu sayfada yazılanlar yeniden yayınlanamaz.
- Bu örnek ders sırasındaki anlatımlardan derlenmiştir. Özellikle bir makale şeklinde yazılmamıştır. Bilgilerde eksiklikler bulunabilir.
Doğrulayıcılar (validators), form verisi (metin kutularına girilenler vb.) sunucuya gitmeden
önce verilerin kontrol edilmesi için kullanılır.
Bu şekilde hatalı verilerin sunucuya gelmeden değiştirilmesi sağlanarak hem güvenlik,
hem de sunucuda yapılacak işler ve zaman açısından tasarruf sağlanır.
Doğrulayıcılar eklendiğinde, doğrulayıcıların yaptığı doğrulama geçilmeden form gönderilmez.
Doğrulayıcılar, istemci tarafında Javascript kodları ile çalışır. Ancak istemci tarafında
Javascript'in engellemesi ve veriler sunucuya gönderilmeden önce tüm doğrulayıcı kontroller
için doğrulamanın çalıştırılmaması gibi durumlarda hatalı form verileri de
sunucuya gönderilebilir. Bundan dolayı Page nesnesinin IsValid özelliği ile tüm doğrulayıcı
kontrollerindeki verilerin geçerli olup olmadığı sunucu tarafında da test edilmelidir.
Örnek :
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object o, EventArgs e)
{
if (Page.IsPostBack) // Sayfaya form verisi geldiyse...
{
if (Page.IsValid) // Sayfadaki tüm doğrulamalar sınamadan geçti mi?
lbMesaj.Text = "Veriler doğrulandı.";
else
lbMesaj.Text = "Veriler doğrulanamadı."
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="lbMesaj" runat="server" /><br />
<asp:TextBox ID="tbAdi" runat="server" />
<!--RequiredFieldValidator bir kontrole veri girilmesini zorunlu tutmak için kullanılır.-->
<asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="tbYasi"
ErrorMessage="Bu alan boş geçilemez.."/>
<!--RangeValidator, bir kontrole istenen aralıkta değer girilmesi için kullanılır-->
<asp:RangeValidator ID="rv1" runat="server" ControlToValidate = "tbYasi
ErrorMessage="Yaşını düzgün gir" MinimumValue=10 MaximumValue=65
SetFocusOnError="true" Display="Dynamic" />
<asp:TextBox ID="tbYasi" runat="server" />
<asp:Button ID="btnGoster" runat="server" Text="Tıkla" CausesValidation="true" />
</form>
</body>
</html>
Örneğimizde sadece 2 tane doğrulayıcı kontrolü örneği verilmiştir. Bunlar kontrole veri girilmeden boş
bırakılmasını engellemek için kullanılan RequiredFieldValidator ve belirli aralıkta verilerin girilmesini
zorlamak için kullanılan RangeValidator'tur. Bunların haricinde 2 kontrole girilen değerleri eşitlik,
büyüklük, küçüklük vb. açılardan karşılştıran CompareValidator, verinin belirlediğiniz bir düzenli
ifadeye uyup uymadığını denetleyen RegularExpressionValidator ve verinin doğruluğunu kontrol etmek
için yazdığınız özel bir yordam vasıtasıyla verinin doğruluğunu kontrol eden CustomValidator
kontrolleri de vardır.
Doğrulayıcı kontrolleri, kullanım amaçlarına göre bir çok özelliğe sahiptir. Bunlardan örnekte
kullandığımız özelliklerin kullanım amaçları şöyledir:
- ControlToValidate : Hangi kontrolün denetleneceği.
(Girilen değeri kontrol edilecek kontrolun adı / ID özelliği değeri).
- ErrorMessage : Denetlenen değer uygun değilse doğrulayıcıyı yazdığımız yerde
görüntülenecek hata mesajı.
-
SetFocusOnError : Veri uygun olmadığında denetlenen kontrole odaklanıp odaklanılmayacağı
(Değer true olursa odaklanır).
- MinimumValue : Kontrole girilmesi istenen en küçük değer.
- MaximumValue : Kontrole girilmesi istenen en büyük değer.
- Display : Hata mesajının görüntülenme şekli (Hata olsun olmasın, sayfa yapısına
hata mesajı için bir alan ayrılması için Static, hata mesajının görüntüleneceği
alanın hata oluştuğunda oluşturulması, aksi halde sayfa yerleşimine etki etmemesi
isteniyorsa Dynamic olarak ayarlanır).
- CausesValidation : Button kontrolüne yazılan bu özellik, tuş tıklandığında
tüm doğrulama kontrolleri için doğrulama prosedürlerinin işletilmesini sağlar.