Como adicionar mensagens a um Validation Summary

Marcas Technorati: ,,,

Mudámos de casa – visitem o novo site em www.istomesmo.com

image Muitas vezes, num formulário web, temos necessidade de notificar o utilizador com determinada mensagem que não faz parte dos validators que usamos no formulário. Nesse caso, o ideal seria que essa mensagem aparecesse na zona do “Validation Summary“.

Para vos dar um exemplo, imaginem que têm uma página de registo de utilizador, e não podem existir utilizadores com o mesmo username. A não ser que já estejamos a utilizar AJAX, não conseguimos saber se já existe um utilizador com o username inserido, enquanto o formulário não for submetido. Depois da validação efectuada do lado do servidor, no caso de já existir um utilizador com o username fornecido, queremos mostrar a mensagem de utilizador já existente no mesmo sitio onde apareceram todas as outras mensagens de validação.

Todos os Validators implementam a interface IValidator, pelo que para adicionarmos uma mensagem ao Validation Summary, necessitamos de criar uma classe que também implemente esta interface.

A classe Page detém uma lista de Validators, à qual nós vamos adicionar o nosso, conseguindo assim apresentar a mensagem desejada no “Validation Summary”.

Vamos então criar a classe ValidationSummaryMessage

1:  using System.Web.UI; 
2:    
3:  /// <summary> 
4:  /// Class that implements IValidator, 
5:  /// enable adding messages to Validation Summary 
6:  /// </summary> 
7:  /// <example> 
8:  /// if(condition not satisfied) 
9:  ///     Page.Validators.Add(new ValidationSummaryMessage("Error Message")); 
10:  /// </example> 
11:  public class ValidationSummaryMessage : IValidator 
12:  { 
13:      private string validationMessage; 
14:    
15:      public ValidationSummaryMessage(string message) 
16:      { 
17:          validationMessage = message; 
18:      } 
19:    
20:      #region IValidator Members 
21:    
22:      public string ErrorMessage 
23:      { 
24:          get { return validationMessage; } 
25:          set { validationMessage = value; } 
26:      } 
27:    
28:      public bool IsValid 
29:      { 
30:          //Allways return false to cause Page.IsValid = false 
31:          get { return false; } 
32:          set { } 
33:      } 
34:    
35:      public void Validate(){} 
36:    
37:      #endregion 
38:  }

Agora que já temos a nossa classe de Mensagens, podemos utilizá-la para adicionar mensagens ao Validation Summary, adicionando uma instância da classe ao grupo de validators da página:

1:          if (TextBox1.Text == "erro") 
2:              Page.Validators.Add((IValidator)new ValidationSummaryMessage("Não pode submeter a palavra 'erro'"));

Sempre que a condição anterior se verificar, a mensagem é adicionada ao Validation Summary da página.

image

Podem efectuar download do projecto de teste através do link seguinte:

http://www.megaupload.com/?d=9R1K3ET6

Se tiverem alguma dúvida ou sugestão, deixem um comentário ou enviem um e-mail para blog.istomesmo@gmail.com .

 

2 Respostas

  1. […] Como adicionar mensagens a um Validation Summary « Isto Mesmo Todos os Validators implementam a interface IValidator, pelo que para adicionarmos uma mensagem ao Validation Summary, necessitamos de criar uma classe que também implemente esta interface. (tags: istomesmo.wordpress.com 2008 mes1 dia20 at_home validation ASP.NET validation_summary blog_post) […]

  2. como posso saber a morada duma pessoa atravez o numero contribuinte

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: