ASP.NET Validation Template 

Here’s a template for some of the more commonly used validation expressions within a complete form.  This form’s “look” was built with pform.

<div class=”form_description”>
<h2>
User Details</h2>
<p>
This form is purely fictional. It is designed to help demonstrate the presentation
layer of a 3-tier ASP.NET application, along with the validation that goes along
with this layer. Please look at User.vb to see our business logic layer, or DAL_Users.xsd
to see the data access layer.</p>
</div>
<fieldset>
<legend>User Details</legend>
<ul>

<asp:UpdatePanel ID=”updFrequency” runat=”server”>
<ContentTemplate>
<li id=”li_1″>
<label class=”description” for=”txtCSUID”>
CSU ID <span class=”required”>*</span>
</label>
<div>
<asp:TextBox ID=”txtCSUID” class=”element text small” runat=”server” AutoPostBack=”true”
MaxLength=”9″ Text='<%# Bind(“CSU_ID”) %>’ />
<br />
<asp:RequiredFieldValidator ID=”valReqCSUID” SetFocusOnError=”True” runat=”server”
Display=”None” ControlToValidate=”txtCSUID” ErrorMessage=”Please enter your CSU ID.”></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valReqCSUID” ID=”valCalloutCSUID”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
<asp:RegularExpressionValidator Display=”None” SetFocusOnError=”True” ID=”valRegExCSUID” runat=”server”
ValidationExpression=”[8]\d{8}” ControlToValidate=”txtCSUID” ErrorMessage=”Please enter a valid CSU ID. Eg, 812123123″></asp:RegularExpressionValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valRegExCSUID” ID=”valCalloutValidCSUID”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</div>
<p class=”guidelines” id=”guide_1″>
<small>Please enter your CSU ID </small>
</p>
</li>
<li id=”li_18″ class=”mustshow”>
<label class=”description” for=”txtBirthDate”>
Birth Date <span class=”required”>*</span>
</label>
<span>
<asp:TextBox ID=”txtBirthDate” class=”element text small” Width=”87px” runat=”server”
MaxLength=”10″ Text='<%# Bind(“BIRTH_DATE”) %>’ /></span> <span id=”calendar_5″>
<img id=”cal_img_5″ class=”datepicker” src=”images/calendar.gif” alt=”Pick a date.”>
</span>&nbsp;<ajaxToolkit:CalendarExtender ID=”calBirthDate” TargetControlID=”txtBirthDate”
runat=”server”>
</ajaxToolkit:CalendarExtender>
<asp:RequiredFieldValidator ID=”valReqDateStart” runat=”server” SetFocusOnError=”True” Display=”None” ControlToValidate=”txtBirthDate”
ErrorMessage=”Please enter some date.”></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender ID=”valCalloutReqDateStart” TargetControlID=”valReqDateStart”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
<asp:CompareValidator ID=”valDateStart” Display=”None” runat=”server” SetFocusOnError=”True” Type=”Date”
Operator=”DataTypeCheck” ControlToValidate=”txtBirthDate” ErrorMessage=”Please enter a valid date. Eg, 01/01/2009″></asp:CompareValidator>
<ajaxToolkit:ValidatorCalloutExtender ID=”valCalloutDateStart” TargetControlID=”valDateStart”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
<p class=”guidelines” id=”P1″>
<small>Please enter your birth date </small>
</p>
</li>
<li id=”li_2″>
<label class=”description” for=”txtEName”>
EName <span class=”required”>*</span>
</label>
<div>
<asp:TextBox ID=”txtEName” class=”element text small” runat=”server” MaxLength=”50″
Text='<%# Bind(“ENAME”) %>’ />
<br />
<asp:RequiredFieldValidator ID=”valReqEName” SetFocusOnError=”True” runat=”server”
Display=”None” ControlToValidate=”txtEName” ErrorMessage=”Please enter your EName.”></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valReqEName” ID=”valCalloutEName”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</div>
<p class=”guidelines” id=”guide_2″>
<small>Please enter your EName </small>
</p>
</li>
<li id=”li_3″>
<label class=”description” for=”txtFirstName”>
Name <span class=”required”>*</span>
</label>
<span>
<asp:TextBox ID=”txtFirstName” class=”element text medium” Width=”87px” runat=”server”
MaxLength=”255″ Text='<%# Bind(“FIRST_NAME”) %>’ />
<label for=”txtFirstName”>
First Name</label>
<asp:RequiredFieldValidator ID=”valReqFirstName” SetFocusOnError=”True” runat=”server”
Display=”None” ControlToValidate=”txtFirstName” ErrorMessage=”Please enter your first name.”></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valReqFirstName” ID=”valCalloutFirstName”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</span><span>
<asp:TextBox ID=”txtLastName” class=”element text medium” Width=”87px” runat=”server”
MaxLength=”255″ Text='<%# Bind(“LAST_NAME”) %>’ />
<label for=”txtLastName”>
Last Name</label>
<asp:RequiredFieldValidator ID=”valReqLastName” SetFocusOnError=”True” runat=”server”
Display=”None” ControlToValidate=”txtLastName” ErrorMessage=”Please enter your last name.”></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valReqLastName” ID=”valCalloutLastName”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</span>
<p class=”guidelines” id=”guide_4″>
<small>Please enter your first and last name.</small>
</p>
</li>
<li id=”li_5″>
<label class=”description” for=”txtAddress”>
Address
</label>
<div>
<asp:TextBox ID=”txtAddress” class=”element text large” runat=”server” MaxLength=”255″
Text='<%# Bind(“ADDRESS”) %>’ />
<label for=”txtAddress_1″>
Street Address</label>
</div>
<div class=”left”>
<asp:TextBox ID=”txtCity” class=”element text medium” runat=”server” MaxLength=”255″
Text='<%# Bind(“CITY”) %>’ />
<label for=”txtCity”>
City</label>
</div>
<div class=”right”>
<asp:TextBox ID=”txtState” class=”element text medium” runat=”server” MaxLength=”50″
Text='<%# Bind(“STATE”) %>’ />
<asp:RegularExpressionValidator Display=”None” ID=”valRegExState” SetFocusOnError=”True” runat=”server”
ValidationExpression=”^[a-zA-Z]+$” ControlToValidate=”txtState” ErrorMessage=”Please enter a valid state name”></asp:RegularExpressionValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valRegExState” ID=”valCalloutState”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
<label for=”txtState”>
State</label>
</div>
<div class=”left”>
<asp:TextBox ID=”txtZIP” class=”element text medium” runat=”server” MaxLength=”10″
Text='<%# Bind(“ZIP”) %>’ />
<asp:RegularExpressionValidator Display=”None” ID=”valRegExZIP” SetFocusOnError=”True” runat=”server” ValidationExpression=”^\d{5}([\-]\d{4})?$”
ControlToValidate=”txtZIP” ErrorMessage=”Please enter a valid ZIP Code”></asp:RegularExpressionValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valRegExZIP” ID=”valCalloutZIP”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
<label for=”txtZIP”>
ZIP</label>
</div>
<p class=”guidelines” id=”guide_5″>
<small>Please enter your address </small>
</p>
</li>
<li id=”li_6″>
<label class=”description” for=”txtEmail”>
E-mail <span class=”required”>*</span>
</label>
<div>
<asp:TextBox ID=”txtEmail” class=”element text large” runat=”server” Text='<%# Bind(“EMAIL”) %>’ />
<br />
<asp:RequiredFieldValidator ID=”valReqEmail” runat=”server” SetFocusOnError=”True”
Display=”None” ControlToValidate=”txtEmail” ErrorMessage=”Please enter your e-mail address.”></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valReqEmail” ID=”valCalloutEmail”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
<asp:RegularExpressionValidator ID=”valRegEmail” ControlToValidate=”txtEmail” SetFocusOnError=”True”
Display=”None” runat=”server” ErrorMessage=”Please enter a valid e-mail address.”
ValidationExpression=”\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*”></asp:RegularExpressionValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valRegEmail” ID=”valRegCalloutEmail”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</div>
<p class=”guidelines” id=”guide_6″>
<small>Please enter your e-mail address </small>
</p>
</li>
<li id=”li_7″>
<label class=”description” for=”txtPhone”>
Phone Number <span class=”required”>*</span>
</label>
<div>
<asp:TextBox ID=”txtPhone” class=”element text medium” runat=”server” MaxLength=”20″
Text='<%# Bind(“PHONE”) %>’ />
<br />
<asp:RequiredFieldValidator ID=”valReqPhone” runat=”server” Display=”None” SetFocusOnError=”True”
ControlToValidate=”txtPhone” ErrorMessage=”Please enter your phone number.”></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valReqPhone” ID=”valCalloutPhone”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
<asp:RegularExpressionValidator ID=”valRegPhoneNumber” ControlToValidate=”txtPhone”
SetFocusOnError=”True” Display=”None” runat=”server” ErrorMessage=”Please enter a valid phone number. Eg, (970) 123-1234″
ValidationExpression=”^\(?\d{3}\)?-?\d{3}-?\d{4}$”></asp:RegularExpressionValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valRegPhoneNumber” ID=”valCalloutPhoneNumber”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</div>
<p class=”guidelines” id=”guide_7″>
<small>Please enter your phone number. Example: (970) 123-1234? </small>
</p>
</li>
</ContentTemplate>
</asp:UpdatePanel>
<li id=”li_8″>
<label class=”description” for=”txtWebsite”>
Website
</label>
<div>
<asp:TextBox ID=”txtWebsite” class=”element text medium” runat=”server” MaxLength=”255″
Text='<%# Bind(“WEBSITE”) %>’ />
<br />
<asp:RegularExpressionValidator ID=”valRegWebsite” ControlToValidate=”txtWebsite”
SetFocusOnError=”True” Display=”None” runat=”server” ErrorMessage=”Please enter a valid web site URL. Eg, http://www.yoursite.com”
ValidationExpression=”((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}”></asp:RegularExpressionValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valRegWebsite” ID=”valCalloutWebsite”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</div>
<p class=”guidelines” id=”guide_8″>
<small>Do you have a website URL you&#39;d like to tie to your profile? </small>
</p>
</li>
<li id=”li_9″>
<label class=”description” for=”radGender”>
Gender
</label>
<div>
<asp:RadioButtonList CssClass=”element radio” ID=”radGender” runat=”server” DataMember='<%# Eval(“GENDER”) %>’
RepeatLayout=”Flow” RepeatColumns=”1″ RepeatDirection=”Vertical”>
<asp:ListItem Value=”M”><label class=”choice” for=”radGender”>Male</label></asp:ListItem>
<asp:ListItem Value=”F”><label class=”choice” for=”radGender”>Female</label></asp:ListItem>
</asp:RadioButtonList>
</div>
<p class=”guidelines” id=”guide_9″>
<small>Please specify your gender. </small>
</p>
</li>
<li id=”li_10″ class=”guidelines_up”>
<label class=”description” for=”txtQualifications”>
Qualifications
</label>
<div>
<ajaxToolkitEditor:Editor ID=”ediQualifications” Width=”500px” onkeyup=”limitChars(this, 750, ‘charlimitinfo’)”
Content='<%# Bind(“QUALIFICATIONS”) %>’ runat=”server” />
<%–<asp:TextBox ID=”txtQualifications” runat=”server” Text='<%# Bind(“QUALIFICATIONS”) %>’ CssClass=”element textarea medium”
Rows=”5″ Columns=”20″ Width=”350px” Wrap=”true” TextMode=”MultiLine” onkeyup=”limitChars(this, 750, ‘charlimitinfo’)”></asp:TextBox>
<div id=”charlimitinfo”>
</div>–%>
</div>
<p class=”guidelines” id=”guide_10″>
<small>What are your qualifications? </small>
</p>
</li>

<li id=”li_11″>
<label class=”description” for=”txtSalary”>
Salary
</label>
<span class=”symbol”>$</span> <span>
<asp:TextBox ID=”txtSalary” class=”element text currency” runat=”server” Text='<%# Bind(“SALARY”) %>’ />
<label for=”txtSalary”>
Dollars</label>
<asp:RangeValidator ID=”valRanSalary” Display=”None” runat=”server” ControlToValidate=”txtSalary” SetFocusOnError=”True”
ErrorMessage=”Desired salary must be >= 1 and <= 999,999.99″ MaximumValue=”1000000″
MinimumValue=”1″ Type=”Double”></asp:RangeValidator>
<ajaxToolkit:ValidatorCalloutExtender TargetControlID=”valRanSalary” ID=”valCalloutSalary”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</span>
<p class=”guidelines” id=”guide_11″>
<small>Please enter your desired salary.</small>
</p>
</li>
<li id=”li_12″>
<label class=”description” for=”chkStatus”>
Status
</label>
<span>
<asp:CheckBoxList CssClass=”element checkbox” ID=”chkStatus” runat=”server” DataMember='<%# Eval(“STATUS”) %>’
RepeatLayout=”Flow” RepeatColumns=”1″ RepeatDirection=”Vertical”>
<asp:ListItem><label class=”choice” for=”chkStatus”>Currently Employed</label></asp:ListItem>
<asp:ListItem><label class=”choice” for=”chkStatus”>Currently Unemployed</label></asp:ListItem>
</asp:CheckBoxList>
</span>
<p class=”guidelines” id=”guide_12″>
<small>Please specify your employment status. </small>
</p>
</li>
<li id=”li_13″>
<label class=”description” for=”ddlEducation”>
Highest Completed Education Level
</label>
<div>
<asp:DropDownList CssClass=”element select medium” ID=”ddlEducation” runat=”server”
DataMember='<%# Eval(“EDUCATION”) %>’ RepeatLayout=”Flow” RepeatColumns=”1″ RepeatDirection=”Vertical”>
<asp:ListItem>Some high school</asp:ListItem>
<asp:ListItem>High school or GED</asp:ListItem>
<asp:ListItem>Some college</asp:ListItem>
<asp:ListItem>Associate&#39;s Degree</asp:ListItem>
<asp:ListItem>Bachelor&#39;s Degree</asp:ListItem>
<asp:ListItem>Education Beyond Bachelor&#39;s Degree</asp:ListItem>
</asp:DropDownList>
</div>
<p class=”guidelines” id=”guide_13″>
<small>Please enter the highest level of education you have completed. </small>
</p>
</li>
<li id=”li_14″>
<label class=”description” for=”txtWebsite”>
Resume <span class=”required”>*</span>
</label>
<div>
<asp:FileUpload ID=”filResume” runat=”server” CssClass=”element text medium” />
<asp:RegularExpressionValidator Enabled=”false” ID=”valExtension1″ runat=”server”
Display=”None” ControlToValidate=”filResume” SetFocusOnError=”True” ErrorMessage=”Please select a .pdf, .doc, or .docx file”
ValidationExpression=”^.+\.((pdf)|(PDF)|(doc)|(DOC)|(docx)|(DOCX))$” ></asp:RegularExpressionValidator>
<ajaxToolkit:ValidatorCalloutExtender Enabled=”false” ID=”valCalloutRegResume” TargetControlID=”valExtension1″
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
<br />
<asp:RequiredFieldValidator ID=”reqValResume” runat=”server” Display=”None” SetFocusOnError=”True” ErrorMessage=”Please select your resume”
ControlToValidate=”filResume”></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender ID=”valCalloutReqResume” TargetControlID=”reqValResume”
runat=”server”>
</ajaxToolkit:ValidatorCalloutExtender>
</div>
<p class=”guidelines” id=”guide_14″>
<small>Please attach your resume </small>
</p>
</li>
</ul>
</fieldset>