Como adicionar mensagens de erro via C# no ValidationSummary do ASP.NET

Lista de ErrosOlá a todos, tudo bom?

Neste post demonstro duas formas para adicionar mensagens de erro no ValidationSummary do ASP.NET via C# (codebehind).

1ª Forma

Nesta forma basta adicionar o ValidationSummary na página onde se deseja apresentar as mensagens de erro e também um CustomValidator, que será utilizado como “coringa” para as mensagens de erro que irão requerer informação junto ao usuário do sistema.

Repare que para o CustomValidator, a propriedade Display foi definida como “None” e a propriedade EnableClientScript tanto do ValidationSummary quanto do CustomValidator foram definidas como “false“. Veja o techo de código abaixo:

...
<asp:ValidationSummary ID="vlsMensagens" runat="server" EnableClientScript="False" ForeColor="Red" />
<asp:CustomValidator ID="cstValidator" runat="server" Display="None" EnableClientScript="False" ErrorMessage="CustomValidator"></asp:CustomValidator>
...

Assim, no código em C# basta realizar a seguinte chamada para adicionar a mensagem de erro ao ValidationSummary:

...
cstValidator.ErrorMessage = txtMensagem.Text;
cstValidator.IsValid = false;
...

2ª Forma (acho essa melhor)

Na segunda situação, criei uma classe chamada MsgSummary que herda de IValidator, dessa forma, podendo acrescentar mensagens de erro no ValidationSummary de uma determinada página sem a necessidade de acrescentar o CustomValidator junto a ele. Veja como ficou:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;

/// <summary>
/// Classe utilizada para acrescentar mensagens em ValidationSummary
/// </summary>
public class MsgSummary : IValidator
{
   string _mensagem;

   public static void AddMsg(string mensagem, Page pagina)
   {
      MsgSummary msg = new MsgSummary(mensagem);
      pagina.Validators.Add(msg);
   }

   private MsgSummary(string mensagem)
   {
      _mensagem = mensagem;
   }

   public string ErrorMessage
   {
      get { return _mensagem; }
      set { }
   }

   public bool IsValid
   {
      get { return false; }
      set { }
   }

   public void Validate()
   { }
}

Agora, veja um exemplo de como apresentar a mensagem desejada no ValidationSummary de uma determinada página:

...
   double nro;
   try
   {
      nro = double.Parse("Vai dar erro na conversão");
   }
   catch(Exception ex)
   {
      MsgSummary.AddMsg(string.Format("Erro provocado: {0}",ex.Message), this);
   }
...

Espero que este post ajude a outras pessoas.

Um grande abraço,
Eduardo Henrique Rizo

[twitter-follow screen_name='eduardorizo' show_count='yes']

1 comentário em “Como adicionar mensagens de erro via C# no ValidationSummary do ASP.NET”

Deixe um comentário