İçindekilerGirişİndex
YukarıİlkÖnceki YokSonrakiSon
Geriİleri
Yazdır
Zafer Teker
tekzaf@yahoo.com

Kullanıcının Girişlerini Doğrulama- Validation Controls

İki tür kontrol olabilir. Client taraflı kontrol ve server taraflı kontrol. ASP.NET girişleri kolayca kontrol etmek için Validation kontorlleri sağlar. Bir validator şağıdaki gibi tanımlanır.

<asp:ValidatorTip 
	id="Validator Id" runat="server"
	ControlToValidate="kontroledilecek kontorl idsi" ErrorMessage="özet bir hata mesajı"
	Display="static|dynamic|none"
	Text="kontrol tarafından gösterilecek yazı">

</asp:ValidatorTip>

Bir kontrol için birden fazla validator kontrol kullanılabilir.

Validation Kontrol Çeşitleri

Şimdi bu kontrollerin basit bir uygulamasını yapalım.

<input type="text" id="txtBox" runat="server">
<asp:RequiredFieldValidator ID="reqField" runat="server" ErrorMessage="Bir şeyler girin " ControlToValidate="txtBox"></asp:RequiredFieldValidator>			
<br>
<input type="submit" id="btnOk" value=" OK " runat="server">

bir TextBox yaratılmıştır. id'si txtBox'dur. Hemen altında bir RequiredFieldValidator tanımlanmıştır. ControlToValidate="txtBox" denilerek üstteki TextBox'un kontrol edileceği söylenmiştir. Eğer kullanıcı bir giriş yapmassa ErrorMessage gözükecektir. Hata mesajı RequiredFieldValidator kontrolünün bulunduğu yerde görüntülenir.

Aşağıda bir RangeValidator örneği bulunmakta.

<input type="text" id="txtBox" runat="server">
<asp:RangeValidator ID="rangeVal" Runat="server" ControlToValidate="txtBox" Type="Integer" MinimumValue="0" MaximumValue="100" ErrorMessage="Sayı 0-100 arasında olmalı"></asp:RangeValidator>
<br>
<input type="submit" id="btnOk" value=" OK " runat="server">

RequiredFieldValidator'den faklı olarak ne tür giriş yapılacağı Type ile veriliyor. Type Integer,String,Double,Date,Currency olabilir. minimum değer MinimumValue ile ve maximum değer MaximumValue ile verilir .

Aşağıda RegularExpressionValidator örneği bulunmaktadır.

<input type="text" id="txtBox2" runat="server" NAME="txtBox2">
<asp:RegularExpressionValidator ID="reqVal" Runat="server" ControlToValidate="txtBox2" ValidationExpression="\w+@\w+\.\w+" ErrorMessage="Geçersiz giriş yaptınız"></asp:RegularExpressionValidator>
<br>
<input type="submit" id="btnOk" value=" OK " runat="server">

ValidationExpression="\w+@\w+\.\w+" ile mail adresi girilmesi gerektirmektedir. @ ve . işareti olması

gerekir. \w istenildiği kadar karakter geleceğini söyler.

Kendi kontrolünüzü yapabilirsiniz. Bunun için CustomValidator kullanılabilir. Bu validator iki türlü olabilir. Birincisi bir javascript fonksiyonu çağırabilirsiniz. Yani kontrol client'ta olur. Diğeri ise server'da kontrol edebilirsiniz. Aşağıda bir javascript ile kontrol yapıyoruz.

<asp:CustomValidator id="cusVal" Runat="server" 
	ControlToValidate="txtBox3" ClientValidationFunction="MyClientFunction"/>

...

function MyClientFunction(source, arguments) {
	alert("Kontrol Başladı! ");
	var intValue = arguments.Value;
	if (intValue > 0) {
		arguments.IsValid = true;
	} else {
		arguments.IsValid = false;
	}
}

Javascript fonksiyonunu source, arguments parametreleri alıyor. arguments.IsValid değişkenini set ederek girişin doğru olup olmadığını onaylıyoruz. Aynı şekilde server tarafında yazılan bir fonksiyonda çağrılabilmektedir.

private void MyServerFunction(object objSource,ServerValidateEventArgs args)
{
	int intValue = Convert.ToInt16(args.Value);
	if (intValue> 0)
	{
		args.IsValid = true;
	}
	else
	{
		args.IsValid = false;
	}
}

yukarıda görüldüğü gibi aynı jscript fonksiyonu gibi args.IsValid set edilmiştir.

ValidationSummary

Bir formda birden çok kontrol olabilir. Birden fazla hata oluşabilir. Bu hataların hepsini tek bir kullanıcıya göstermek için ValidationSummary kullanılır.

<asp:ValidationSummary id="valsum" Runat=server 
	HeaderText="Özet" 
	ShowSummary=True 
	DisplayMode=List></asp:ValidationSummary>

Tüm hata mesajları bu kontrolün koyulduğu yerde gösterilecek.

Page.IsValid

Herhangi bir olay sonucunda bir işlem yapmak istediğinizde formun doğrulanmasını isteyebilirsiniz. Bunun için Page.IsValid kullanılır. Eğer kullanıcı doğru girmişse sonuç true olur.

İçindekilerGirişİndex
YukarıİlkÖnceki YokSonrakiSon
Geriİleri
Yazdır