Adicionando Mensagens no ValidationSummary


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.”));
}

Anúncios

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s