Ana Sayfa » Ders Notları ve Örnekler » ASP.NET » Validator (Doğrulayıcı) Kontrolleri İle Veri Geçerliliğini Sınama

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.
İletişim : hazirsite@gmail.com