ASP.NET Webforms Validation Kontrolleri

Kullanıcıların girdiği bilgilerin geçerli olup olmadığını kontrol etmek önemlidir. ASP.NET ile hataları kontrol etmek gerektiğinde karşımıza Validation(Doğrulama) kontrolleri çıkar.Peki bunlar nedir ve nasıl kullanılır.

ASP.NET'te altı tür doğrulama kontrolü vardır.

RequiredFieldValidator Kontrolü

Giriş denetimi için verilerin girilip girilmediğini kontrol eden doğrulama denetimidir. Zorunlu Alan kuralını zorunlu kılmak istediğiniz her form öğesi için bir RequiredFieldValidator kontrolü kullanabilirsiniz.

CompareValidator Kontrolü

Bir giriş denetimine girilen verileri sabit bir değerle veya farklı bir denetimdeki bir değerle karşılaştırmak için kullanılır.En çok, kayıt zamanında kullanıcı tarafından girilen şifreyi onaylamanız gerektiğinde kullanılabilir. Veriler her zaman büyük / küçük harfe duyarlıdır..

RangeValidator Kontrolü

Girilen değerin geçerli bir aralık içinde olup olmadığını kontrol eden kontroldür. 

RegularExpressionValidator Kontrolü

Kod yazmayı gerektiren basit ve karmaşık karakter dizisini tanımlamak için kullanılabilecek güçlü kontroldür.Karmaşık ifadeleri doğrulamak için kullanılır. Bu ifadeler telefon numarası, e-posta adresi, posta kodu ve daha fazlası olabilir. ValidationExpression özelliğini istediğiniz herhangi bir ifade türüne ayarlamanız yeterlidir.İstediğiniz normal ifadeyi bulamazsanız, özel ifadenizi oluşturabilirsiniz.

CustomValidator Kontrolü 

Doğrulama kontrolleri ile amacınızı çözebilirsiniz. Ancak yine de çözüm bulamazsanız, kendi özel doğrulayıcı kontrolünüzü bu kontrolle oluşturabilirsiniz.

ValidationSummary Kontrolü 

Sayfadaki diğer doğrulama Kontrolleri tarafından kullanılan kontroldür. Bu doğrulama kontrolü, bunu tek tek her doğrulama denetimine bırakmak yerine, bir sayfada meydana gelen tüm doğrulama hataları için raporlama hatalarını birleştirmek için kullanabilirsiniz.

Şimdi gelin bu kontrolleri kullanalım.Bir ASP.NET Webforms projesi başlatın ve bir Webform ekleyin.Tasarımını şöyle yapın.

   <form id="form1" runat="server">
        <div>
            <table style="width: 500px;">
                <tr>
                    <td>Ad Soyad:</td>
                    <td>
                        <asp:TextBox ID="txtName" placeholder="Adınız Soyadınız" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Ad alanı boş geçilemez" ControlToValidate="txtName" ForeColor="Red"></asp:RequiredFieldValidator>
                    </td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                </tr>
                <tr>
                    <td>E-Posta:</td>
                    <td>
                        <asp:TextBox ID="txtEmail" placeholder="E-Posta Giriniz" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Eposta boş geçilemez" ControlToValidate="txtEmail" ForeColor="Red"></asp:RequiredFieldValidator>

                    </td>

                </tr>
                <tr>
                    <td colspan="3">
                        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmail" ErrorMessage="Eposta formatı uygun değil" ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator></td>
                </tr>
                <tr>
                    <td>Cep Telefonu :</td>
                    <td>
                        <asp:TextBox ID="txtMobile" placeholder="Cep Numarası Giriniz" runat="server"></asp:TextBox></td>
                    <td>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Cep numarası boş geçilemez" ControlToValidate="txtMobile" ForeColor="Red"></asp:RequiredFieldValidator>

                    </td>
                </tr>
                <tr>
                    <td colspan="3">
                        <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtMobile" ErrorMessage="Cep numarası 10 karakter olmalı" ForeColor="Red" ValidationExpression="\d{10}"></asp:RegularExpressionValidator></td>
                </tr>
                <tr>
                    <td>Şifre :</td>
                    <td>
                        <asp:TextBox ID="txtPassword" placeholder="Şifre Giriniz" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ErrorMessage="Şifre boş geçilenmez" ControlToValidate="txtPassword" ForeColor="Red"></asp:RequiredFieldValidator>
                    </td>
                </tr>
                <tr>
                    <td colspan="3">
                        <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtPassword" ControlToValidate="txtConfirmPassword" ErrorMessage="Şifre ve Şifre tekrarı aynı olmalı" ForeColor="Red"></asp:CompareValidator></td>
                </tr>
                <tr>
                    <td>Şifre Tekrarı:</td>
                    <td>
                        <asp:TextBox ID="txtConfirmPassword" placeholder="Şifreyi tekrar giriniz" runat="server"></asp:TextBox>
                    </td>
                    <td></td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                    <td>&nbsp;</td>
                </tr>
                <tr>
                    <td>Yaş :
                    </td>
                    <td>
                        <asp:TextBox ID="txtAge" placeholder="Yaş Giriniz" runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="Yaş alanı boş geçileemez" ControlToValidate="txtAge" ForeColor="Red"></asp:RequiredFieldValidator>

                    </td>
                </tr>
                <tr>
                    <td colspan="3">
                        <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="Yaş alanı 20 ile 45 arasında olmalı" ControlToValidate="txtAge" ForeColor="Red" MaximumValue="45" MinimumValue="20"></asp:RangeValidator></td>
                </tr>
                <tr>
                    <td></td>
                    <td>
                        <asp:Button ID="btnSubmit" runat="server" Text="Kaydet" />
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>

Tasarım görüntüsü aşağıdaki gibi olacaktır.

Çalıştırırsanız hata ekranı alırsınız. Bu nedenle Web.Config dosyasını açınız ve <configuration>....</configuration> tagları arasına şu ifadeleri ekleyiniz.

<appSettings>
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>

Projeyi çalıştırın ve Kaydet butonuna basın.

Eposta, cep telefonu, şifre ve yaş istenmeyen  aralıkta  girilirse görüntü;