Improved Input Validation - validateNumber() function
(Page 6 of 9 )
Now, it's time to bring the validateNumber() function to your notice. This JavaScript function is used to check whether the number entered by the user is an even number using a complex equation devised by the Greeks eons ago. Just kidding, folks - it's just good ol' arithmetic at work.
<%
// snip
<script language="JavaScript">
function validateNumber(oSrc, args) {
args.IsValid = (args.Value % 2 == 0);
}
</script>
// snip
%>
You can name your custom validation function however you like so long it confirms to the following syntax:
function customFunction
(oSrc, args) {
// code comes here
}
Now that we have our custom validation function in place, it's time to associate it with the CustomValidator validation control defined earlier. The "ClientValidationFunction" attribute of the control is used to associate the validateNumber() function with the CustomValidator server control.
Something to note here - more on this when we discuss server side validation using the "CustomValidator" control - is the "IsValid" property. This property is set to false if any of the validation controls present in the ASP.NET script fails. We shall see more of this property in action in the next example, which explains server-side validation.
Bringing In The Server
The previous example demonstrated custom validation using a client side JavaScript function. Let me now take the action to the server where you can define similar custom functions in C# (or any .NET compatible language) on the server.
<%@ Page Language="C#" %>
<html>
<head>
<title>Odd or Even...</title>
<script language="C#" runat=server>
protected void NumberValidate(object source, ServerValidateEventArgs
args)
{
args.IsValid = (Convert.ToInt16(args.Value)%2 == 0);
}
void Submit_Click(object source, EventArgs args) {
if (IsValid) {
output.Text = "Thank you very much.";
} else {
output.Text = "Sorry, an error has occurred.";
}
}
</script>
<basefont face="Arial">
</head>
<body>
<asp:label id="output" runat="server" text="" />
<form runat="server" method="POST" >
<asp:label id="lblMyNumber" runat="server" text="Please enter your favourite even number: " />
<asp:textbox id="txtMyNumber" runat="server" />
<asp:RequiredFieldValidator id="txtMyNumberRFV" ControlToValidate="txtMyNumber" ErrorMessage="Please enter a number" runat="server" display="dynamic" EnableClientScript="false"/>
<asp:CustomValidator id="txtMyNumberCV" runat="server" OnServerValidate="NumberValidate" ControlToValidate="txtMyNumber" ErrorMessage="Please enter an even number." display="dynamic" EnableClientScript="false" /> <br/>
<asp:Button OnClick="Submit_Click" Text="Submit" runat="server" />
</form>
</body>
</html>
As before, this example asks the user to enter an even number. If the user enters valid data, the text in the ASP.NET label control displays a "Thank You" message. And if the user enters an odd number, an error message immediately provides a warning.
Next: A Closer Look >>
More ASP.NET Articles
More By Harish Kamath (c) Melonfire