Wednesday, October 22, 2008

ASP.NET Validator Controls

0 comments 10/22/2008
Sign up to receive our site updates!





Back when we had only ASP, developers who had to write webpages for forms knew that the most tedious part is writing code to validate the user input.The developers of ASP.NET saw the tedium in always having to check user input. They decided that to simplify our life by including validation controls.

ASP.NET validation controls also provide two ways of validation: Server-side or Client-side. The nice thing about these Validation controls is that it will preform client-side validation when it detects the browser is able (unless client-side validation has been disabled). Thus reducing roundtrips. And it will preform server-side where necessary. This client-side/server-side detection and validation is done without extra work by the developer!







With ASP.NET, there are six(6) controls included. They are:

  • The RequiredFieldValidation Control
  • The CompareValidator Control
  • The RangeValidator Control
  • The RegularExpressionValidator Control
  • The CustomValidator Control
  • Validation Summary



Validator Control Basics

All of the validation controls inherit from the base class BaseValidator so they all have a series of properties and methods that are common to all validation controls. They are:

  • ControlToValidate - This value is which control the validator is applied to.
  • ErrorMessage - This is the error message that will be displayed in the validation summary.
  • IsValid - Boolean value for whether or not the control is valid.
  • Validate - Method to validate the input control and update the IsValid property.
  • Display - This controls how the error message is shown. Here are the possible options:
    • None (The validation message is never displayed.)
    • Static (Space for the validation message is allocated in the page layout.)
    • Dynamic (Space for the validation message is dynamically added to the page if validation fails.)





The RequiredFieldValidation Control

The first control we have is the RequiredFieldValidation Control. As it's obvious, it make sure that a user inputs a value. Here is how it's used:

 

<asp:textbox id="textbox1" runat="server"/>

<asp:RequiredFieldValidator id="valRequired" runat="server" ControlToValidate="textbox1"

ErrorMessage="* You must enter a value into textbox1" Display="dynamic">*

asp:RequiredFieldValidator>





In this example, we have a textbox which will not be valid until the user types something in. Inside the validator tag, we have a single *. The text in the innerhtml will be shown in the controltovalidate if the control is not valid. It should be noted that the ErrorMessage attribute is not what is shown. The ErrorMessage tag is shown in the Validation Summary (see below).



The CompareValidator Control

Next we look at the CompareValidator Control. Usage of this CompareValidator is for confirming new passwords, checking if a departure date is before the arrival date, etc. We'll start of with a sample:

Textbox 1: <asp:textbox id="textbox1" runat="server"/><br />

Textbox 2: <asp:textbox id="textbox2" runat="server"/><br />

<asp:CompareValidator id="valCompare" runat="server"

ControlToValidate="textbox1" ControlToCompare="textbox2"

Operator="Equals"

ErrorMessage="* You must enter the same values into textbox 1 and textbox 2"

Display="dynamic">*

asp:CompareValidator>





Here we have a sample where the two textboxes must be equal. The tags that are unique to this control is the ControlToCompare attribute which is the control that will be compared. The two controls are compared with the type of comparison specified in the Operator attribute. The Operator attribute can contain Equal, GreterThan, LessThanOrEqual, etc.

Another usage of the ComapareValidator is to have a control compare to a value. For example:

<asp:textbox id="textbox1" runat="server"/>

<asp:CompareValidator id="valRequired" runat="server" ControlToValidate="textbox1"

ValueToCompare="50"

Type="Integer"

Operator="GreaterThan"

ErrorMessage="* You must enter the a number greater than 50" Display="dynamic">*

asp:CompareValidator>





The data type can be one of: Currency, Double, Date, Integer or String. String being the default data type.



The RangeValidator Control

Range
validator control is another validator control which checks to see if a control value is within a valid range. The attributes that are necessary to this control are: MaximumValue, MinimumValue, and Type.



Sample:

Enter a date from 1998:

<asp:textbox id="textbox1" runat="server"/>

<asp:RangeValidator id="valRange" runat="server"

ControlToValidate="textbox1"

MaximumValue="12/31/1998"

MinimumValue="1/1/1998"

Type="Date"

    ErrorMessage="* The date must be between 1/1/1998 and 12/13/1998"


Display="static">*asp:RangeValidator>







The RegularExpressionValidator Control

The regular expression validator is one of the more powerful features of ASP.NET. Everyone loves regular expressions. Especially when you write those really big nasty ones... and then a few days later, look at it and say to yourself. What does this do?

Again, the simple usage is:

E-mail: <asp:textbox id="textbox1" runat="server"/>

<asp:RegularExpressionValidator id="valRegEx" runat="server"

ControlToValidate="textbox1"

ValidationExpression=".*@.*\..*"

ErrorMessage="* Your entry is not a valid e-mail address."

display="dynamic">*

asp:RegularExpressionValidator>





Click Here For More Info on regular expressions.



The CustomValidator Control

The final control we have included in ASP.NET is one that adds great flexibility to our validation abilities. We have a custom validator where we get to write out own functions and pass the control value to this function.

<asp:textbox id="textbox1" runat="server">

<asp:CustomValidator id="valCustom" runat="server"

ControlToValidate="textbox1"

ClientValidationFunction="ClientValidate"

OnServerValidate="ServerValidate"

ErrorMessage="*This box is not valid" dispaly="dynamic">*

asp:CustomValidator>





We notice that there are two new attributes ClientValidationFunction and OnServerValidate. These are the tell the validation control which functions to pass the controltovalidate value to. ClientValidationFunction is usually a javascript funtion included in the html to the user. OnServerValidate is the function that is server-side to check for validation if client does not support client-side validation.

Client Validation function:

<script type="text/javascript">

 

/*code goes here...*/

script>



Server Validation function:

public void testatserver(object sender, ServerValidateEventArgs args)

{

/*code goes here...*/

}



 

For example:

Client Validation for Accepting only even Numbers…….

<script type="text/javascript">

function validationatclient(sender,args)

{

if((args.Value%2)==0)

args.IsValid=true;

else

args.IsValid=false;

}

script>

Sever Validation For the Same Example……

public void testatserver(object sender, ServerValidateEventArgs args)

{

if ((int.Parse( args.Value) % 2)== 0)

args.IsValid = true;

else

args.IsValid = false;

}



For example accepting string contains 6 t0o 10 chars

<script type="text/javascript">

function validationatclient(sender,args)

{

if(args.Value.length>=6 && args.Value.length<=10)

args.IsValid=true;

else

args.IsValid=false;

}

script>



Validation Summary



ASP.NET has provided an additional control that complements the validator controls. This is the validation summary control which is used like:

<asp:ValidationSummary id="valSummary" runat="server"

HeaderText="Errors:"

    ShowSummary="true" DisplayMode="List" />





The validation summary control will collect all the error messages of all the non-valid controls and put them in a tidy list. The list can be either shown on the web page (as shown in the example above) or with a popup box (by specifying ShowMessageBox="True")



Now you know how to use the Validator Controls in ASP.NET! Have fun!

I will also upload a sample of all the validator controls to the code sample section.



Acknoledgment: Professional ASP.NET (published by Wrox) was used a reference. It's a good book!



Tips:

  • If you are doing server-side validation, make sure the button onclick method has a Page.IsValid if statement or it will look like your validators aren't doing anything
  • Don't forget to wrap everything in the <form runat=server> tag.

Your Ad Here

0 comments:

Respects for your's Questions & Opinions

  • Friends
  •  

    Recent Posts

    New Comments

    Copyright 2008 All Rights Reserved Tech Tasks Template by Rajesh Kumar Chekuri