Asp.Net’de doğrulama kontrolleri işimizi görmüyorsa CustomValidator Doğrulama nesnesi ile özel olarak istersek sunucu tarafl doğrulama kodu yazabilir istersekte javascipt ile client taraflı kodlar yazarak kendi doğrulamalarımızı yazabiliriz.
Asp.Net’de CustomValidator ile kendi doğrulama kodlarımızı yazalım
Bu örneğimizde sayı girebileceğimiz bir adet texbox’ ile sayının çift sayı olup olmadığını hem sunucu tarafında hemde javascript ile client taraflı kontrol edeceğiz.
Öncelikle sayı girişi için bir textbox ve submit edebilmek için bir adet button ekliyoruz sayfamıza örnek kodu altta bulabilirsiniz.
1 2 3 | <asp:Label runat="server" >Sayı: </asp:Label><asp:TextBox runat="server" ID="TxtSayi"></asp:TextBox> <asp:CustomValidator runat="server" ControlToValidate="TxtSayi" ClientValidationFunction="SayiTest" OnServerValidate="CustomSayiKontrol_OnServerValidate" ID="CustomSayiKontrol"></asp:CustomValidator> <asp:Button runat="server" ID="BtnKaydet" OnClick="BtnKaydet_OnClick" Text="Kaydet"/> |
Sunucu taraflı olarak girilen sayının çift sayı olup olmadığını kontrol etme
Sunucu taraflı olarak yazılan metodu istersek property’den çift tıklayarak direk oluşturabiliriz istersekde alttaki kodu kopyala yapıştır ile alıp OnServerValidate özelliğinden seçebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | protected void CustomSayiKontrol_OnServerValidate(object source, ServerValidateEventArgs args) { if (args.Value != "") { int Number; bool NumberValid = int.TryParse(args.Value, out Number); if (NumberValid && Number >= 0 && Number%2 == 0) args.IsValid = true; else args.IsValid = false; } else args.IsValid = false; } |
Client taraflı olarak girilen sayının çift olup olmadığını kontrol etme
Javascript ile tanımlanan fonksiyonda 2 adet parametre olması gerekiyor ilki sender nesnesi ikincisi ise event’in bulunduğu parametre bulunmalıdır örnek javascript kodu altta yer almaktadır alttaki kodda tanımlanan fonksiyonu CustomCompare doğrulama nesnesinin ClientValidationFunction özelliğine girmelisiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <script type="text/javascript"> function SayiTest(sender, arg) { debugger; if (arg.value != '') { if (arg.Value >= 0 && arg.value % 2 == 0) { arg.IsValid = true; } else { arg.IsValid = false; } } else { arg.IsValid = false; } } |
Button eventi’ne tıklandığında ise Sayfanın IsValid özelliği kontrol edilerek gerekli işleminizi yapabilirsiniz. BtnKaydet adlı butonun event’inde alttaki örnek kodlar yazılmaktadır.
1 2 3 4 5 6 7 8 9 | protected void BtnKaydet_OnClick(object sender, EventArgs e) { if (!IsValid) { Response.Write("Doğrulama yapılamadı."); return; } Response.Write("Doğrulama başarıyla gerçekleşti."); } |