<asp:Content ID="Content1" ContentPlaceHolderID="PlaceHolderHeader" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="PlaceHolderForTitleAndIntro" Runat="Server">
<table width="100%" cellpadding="2" cellspacing="0">
<tr valign="top" class="ArticleTitle">
<td style="padding-left:10px;" valign="middle">
asp:CustomValidator control</td>
</tr>
<tr>
<td class="ArticleContents">
CustomValidator control is used to validate a input control with user-defined function either from server side or client side.
</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
</table>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="PlaceHolderForContents" Runat="Server">
<div class="ArticleContents">
CustomValidator control is used to validate a input control with user-defined function either from server side or client side.
Generally this control is used when you feel that no other validation controls fit in your requirement.
<p> </p>
Following are main properties of the validation control.
<table width="100%" class="TutoPropPlaceHolder" border="1" cellpadding="2" cellspacing="1">
<tr>
<td class="DemoCP">ClientValidationFunction</td>
<td>
Gets or sets the validation function that will be used in client side (JavaScript function).
</td>
</tr>
<tr>
<td class="DemoCP">OnServerValidate</td>
<td>
Method that fires after post back.
</td>
</tr>
<tr>
<td class="DemoCP">ControlToCompare</td>
<td>
Gets or sets the ID of the control whose value will be compared with the currently entered value.
</td>
</tr>
<tr>
<td class="DemoCP">Operator</td>
<td>
DataTypeCheck/Equal/GreaterThan/GreaterThanEqual/LessThan/LessThanEqual/NotEqual.
Used to specify the comparison operation to peform. In case of DataTypeCheck, <span class="DemoCP">ControlToCompare</span> properties are ingnored.
</td>
</tr>
<tr>
<td class="DemoCP">Display</td>
<td>
Dynamic/Static. Used to indicate how the area of error message will be allocated. <br />
Dynamic: Error message area will only be allocated when error will be displayed. Static: Error messagea area will be allocated in either case.
</td>
</tr>
<tr>
<td class="DemoCP">Enabled</td>
<td>
true/false. Gets or sets whether to enable the validation control or not.
</td>
</tr>
<tr>
<td class="DemoCP">ErrorMessage</td>
<td>
Gets or sets the text of the error message that will be displayed when validation fails (This is displayed when ValidationSummary validatoin control is used.).
</td>
</tr>
<tr>
<td class="DemoCP">Text</td>
<td>
Gets or sets the description of the error message text.
</td>
</tr>
<tr>
<td class="DemoCP">ValidationGroup</td>
<td>
Gets or sets the validation group it belongs to. This is used to group a set of controls.
</td>
</tr>
<tr>
<td class="DemoCP">SetFocusOnError</td>
<td>
true/false. Used to move focus on the control that fails the validation.
</td>
</tr>
</table>
<!-- START - Demo Section -->
<table class="DemoPlaceHolder" border="1" cellpadding="2" cellspacing="4">
<tr>
<td class="DemoTitle">
DEMO : CustomValidator
</td>
<td align="right">
<a class="DemoShowSource" href="../../misc/codeviewer/default.aspx?pagename=~/tutorials/controls/customvalidator.aspx" target="_blank">Show Source Code</a>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lbl" AssociatedControlID="TextBox1" runat="Server" Text="Write into TextBox"></asp:Label>
<asp:TextBox ID="TextBox1" runat="Server" Columns="40"></asp:TextBox>
<asp:RequiredFieldValidator ID="req1" runat="Server" ControlToValidate="TextBox1" ErrorMessage="1st TextBox is Mandatory field" Text="<br>Please write something in 1st Box."></asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator1" runat="Server" ControlToValidate="TextBox1" ClientValidationFunction="CheckForHardCodedValue" ErrorMessage="Value doens't match." Text="TextBox value must be [GOLD]" OnServerValidate="ValidateServerSide"></asp:CustomValidator>
<asp:Button ID="btnSubmit" runat="Server" OnClick="WriteTextBoxValue" Text="Submit" />
<asp:ValidationSummary ID="ValidationSummary" runat="Server" ShowMessageBox="true" />
</td>
<td>
<asp:Label ID="lblMessage" runat="Server" ForeColor="red" EnableViewState="False"></asp:Label>
</td>
</tr>
<tr>
<td colspan="2">
<pre>
// Form & Validation Control /////////////////////////
<asp:Label ID="lbl" AssociatedControlID="TextBox1" runat="Server" Text="Write into TextBox"></asp:Label>
<asp:TextBox ID="TextBox1" runat="Server"></asp:TextBox>
<asp:RequiredFieldValidator ID="req1" runat="Server" ControlToValidate="TextBox1" ErrorMessage="1st TextBox is Mandatory field" Text="<br>Please write something in 1st Box."></asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator1" runat="Server" ControlToValidate="TextBox1" ClientValidationFunction="CheckForHardCodedValue" ErrorMessage="Value doens't match." Text="TextBox value must be [GOLD]" OnServerValidate="ValidateServerSide"></asp:CustomValidator>
<asp:Button ID="btnSubmit" runat="Server" OnClick="WriteTextBoxValue" Text="Submit" />
<asp:ValidationSummary ID="ValidationSummary" runat="Server" ShowMessageBox="true" />
// JavaScript validation function /////////////////////////
function CheckForHardCodedValue(source, arguments)
{
var tID = '<%= TextBox1.ClientID %>';
if (document.getElementById(tID).value == 'GOLD')
arguments.IsValid = true;
else
arguments.IsValid = false;
}
// Server side function to validate /////////////////////////
protected void ValidateServerSide(object source, ServerValidateEventArgs args)
{
if (args.Value.Equals("GOLD"))
{
args.IsValid = true;
lblMessage.Text += "Page is valid.<br />";
}
else
{
args.IsValid = false;
lblMessage.Text += "Page is NOT valid.<br />";
}
}
</pre>
</td>
</tr>
</table>
<!-- END - Demo Section -->
</div>
<br />
<script language="javascript" type="text/javascript">
function CheckForHardCodedValue(source, arguments)
{
var tID = '<%= TextBox1.ClientID %>';
if (document.getElementById(tID).value == 'GOLD')
arguments.IsValid = true;
else
arguments.IsValid = false;
}
</script>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="PlaceHolderFooter" Runat="Server">
</asp:Content>
Go Top