Tutorial - Log de Excepções ELMAH (Parte 1) Validar um Número de Contribuinte (NIF)
Fev 18
Marcas Technorati: , , ,

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 .

 


publicado por NC Etiquetas: , , , , ,

Uma Resposta a “Como adicionar mensagens a um Validation Summary”

  1. rascunho » Blog Archive » links for 2008-02-20 Diz:

    [...] 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) [...]

Deixar uma resposta