<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="UsingCustomValidator" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Using a CustomValidator</title>
</head>
<body>
<form id="form1" runat="server">
Enter a date:<br />
<asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
<asp:CustomValidator ID="custDate" runat="server"
ControlToValidate="txtDate"
ValidateEmptyText="false"
Text="Enter a valid future date"
OnServerValidate="custDate_ServerValidate" />
<script type="text/javascript">
function validateOrFields(source, args){
var sUser = document.form1.<%= txtUser.ClientID %>.value;
var sEmail = document.form1.<%= txtEmail.ClientID %>.value;
if (sUser == "" && sEmail == "")
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
return;
}
</script>
Enter user name:<br />
<asp:TextBox ID="txtUser" runat="server"></asp:TextBox>
<br />
Enter email:<br />
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:CustomValidator ID="OrFieldValidator"
runat="server"
Text="Enter either a user name or a email"
ClientValidationFunction="validateOrFields"
OnServerValidate="OrFieldValidator_ServerValidate" />
<asp:Button ID="btnSubmit" Text="Click this to test validation" runat="server" />
</form>
</body>
</html>
<script type="text/javascript">
ValidatorHookupControlID("<%= txtUser.ClientID %>",document.getElementById("<%= OrFieldValidator.ClientID %>"));
ValidatorHookupControlID("<%= txtEmail.ClientID %>",document.getElementById("<%= OrFieldValidator.ClientID %>"));
</script>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class UsingCustomValidator : System.Web.UI.Page
{
protected void custDate_ServerValidate(object source, ServerValidateEventArgs args)
{
string sEnteredDate = args.Value;
DateTime dt;
bool convertSuccessful = DateTime.TryParse(sEnteredDate, out dt);
if (convertSuccessful && dt >= DateTime.Today)
args.IsValid = true;
else
args.IsValid = false;
}
protected void OrFieldValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
if (txtUser.Text.Length <= 0 && txtEmail.Text.Length <= 0)
args.IsValid = false;
else
args.IsValid = true;
}
}