Клас CustomValidator використовують у випадку, якщо наявних можливостей стандартних валідаторів недостатньо. У класі CustomValidator можна написати довільну функцію, яка буде перевіряти значення як на стороні сервера, так і у клієнта.
Наприклад, наступний код задає валідатор, який буде перевіряти пароль на довжину - не менше 5 символів:
<script language="JavaScript">
function validatePassword(oSrc, args)
{
args.IsValid = (args.Value.length > 5);
}
</script>
......
<asp:CustomValidator ID="CustomValidator1" runat="server"
ControlToValidate="txtPassword1"
ErrorMessage="Потрібно не менше 5 символів" Display="Static"
ClientValidationFunction="validatePassword" >
</asp:CustomValidator>
Перевірка здійснюється на стороні клієнта функцією validatePassword. Для того, щоб перевірка відбувалася на сервері, використовується властивість OnServerValidate. Функція, яка вказується у цій властивості, повинна бути методом класу і написана на C#:
void ServerValidate(object source, ServerValidateEventArgs args)
{
string password = args.Value.ToString();
int len = password.Length;
args.IsValid = (len >= 5);
}