Uma pergunta que fizeram no fórum e que achei interessante é como adicionar uma mensagem customizado no controle ValidationSummary sem ter um validator control vinculado. Pois bem, os controles de validação implementam direta ou indiretamente a interface IValidator. Essa interface fornece 3 membros: ErrorMessage { get; set; }, IsValid { get;set } e Validate().
A classe Page possui uma propriedade chamada Validators e que a mesma expõe a coleção de validadores contidos na página. Sendo assim, basta criarmos uma classe e implementarmos a interface IValidator. Algo mais ou menos como:
using System;
using System.Web.UI;
public class CustomErrorMessage : IValidator
{
public CustomErrorMessage(string errorMessage)
{
this.ErrorMessage = errorMessage;
}
public string ErrorMessage { get; set; }
public bool IsValid
{
get { return false; }
set { }
}
public void Validate() { }
}
Depois da classe criada, basta utilizarmos em qualquer página da aplicação:
int valor = 0;
try
{
int resultado = 123 / valor;
}
catch(DivideByZeroException)
{
this.Validators.Add(new CustomErrorMessage(“Divisão por 0.”));
}