RequiredFieldValidator kontrolünün InitialValue propertysini kullanarak dropdownlist seçimlerimizde açıklama yazsını yazdığımız itemların seçilmesi durumunda validatörün tetiklenmesini sağlayabiliriz.
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>Lütfen bir kişi seçiniz</asp:ListItem>
<asp:ListItem>Yasin Sirkecili</asp:ListItem>
<asp:ListItem>Levent Yıldız</asp:ListItem>
<asp:ListItem>Mete Tunca</asp:ListItem>
<asp:ListItem>Sem Göksu</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList1" ErrorMessage="isim seçmediniz" InitialValue="Lütfen bir kişi seçiniz"></asp:RequiredFieldValidator>
Yukarıdada gördüğünüz üzere ListItemlarımızdan 0 indexine sahip olan ve sadece açıklama nedeniyle kullandığımız itemın seçilmesi durumunda validatörün tetiklemesini sağlamak için Initial Value proprtysine itemla aynı text değeri atıyoruz. Initial Value propertysinin özelliği kendisine atanan katar ile validatörün kontrol ettiği kontrolün text değerinin aynı olmamasını sağlamaktır. Eğer iki değer aynı ise validatörün tetiklenerek uyarı mesajı vermesini sağlayacaktır.
Çoğumuzun genellikle iki farklı kontroldeki değerlerin birbirleri ile aynı olup olmadığını denetlemek için kullandığımız CompareValidator aslında tek bir kontroldeki katarın sabitlenen bir değere eşit yada büyük yada küçük gibi kontrollerini yapmanın yanı sıra aynı zamanda girilen değerin data tipinide kontrol edebilir. Örneğin;
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="textboxa yasin yazmadınız." ValueToCompare="yasin"></asp:CompareValidator>
şeklinde bir kontrole girilen veriyi başka bir kontrolle karşılaştırmak yerine bir değerle karşılaştırabiliyoruz. Aynı olayı CompareValidatorımızın Operator ve Type properytlerinden faydalanarak matematiksel karşılaştırmalar yapmak gibi işlemler içinde kullanabiliriz. Örneğin;
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="10dan büyük bir sayı yazmadınız." Operator="GreaterThan" Type="Integer" ValueToCompare="10"></asp:CompareValidator>
Burda kullanıcıyı integer tipinde bir değer girmeye zorlamanın yanı sıra aynı zamanda 10dan büyük bir değer girmeyede mecbur bırakıyoruz.
Sadece girilen verinin tipini kontrol etmek istersek;
<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="lütfen tam sayı bir değer giriniz." Operator="DataTypeCheck" Type="Integer"></asp:CompareValidator>
şeklinde Operator propertysinin DataTypeCheck değerini kullanarak girilen verinin istediğimiz veri türüne olan uygunluğunuda kontrol edebiliriz. Test uygulaması yaptığınızda göreceğiniz üzere CompareValidatorün gelişmiş özellikleri birçok konuda RegularExpression ihtiyacını ortadan kaldırıyor.
Operator property'si 7 farklı değer alabilir. Bu değerler DataTypeCheck , Equal , NotEqual , GreaterThan , GreaterThanEqual , LessThan , LessThanEqual şeklinde olup bu değerlerden faydalanarak kontrol değerini karşılaştırma şeklinizi kolaylıkla belirleyebilirsiniz.
Type property'si ise 5 farklı değer alır ve bu değerler şöyledir: Currency , Date, Double, Integer, String