Os controles de validação podem ser usados com os controles ASP.NET sejam controles Html ou Web.
Os controles de validação são:
Controle | Descrição |
RequiredFieldValidator | Valida que o usuário digitou ou selecionou alguma inforação no controle |
CompareValidator | Compara se os dados de dois controles são as mesmas. |
RangeValidator | Verifica se o dado do controle está dentro do limite inferior e superior definido. |
RegularExpressionValidator | Verifica se o dado do controle está de acordo com a expressão regular definida |
CustomValidator | Permite a construção de uma validação customizada do usuário utilizando uma lógica do servidor(usando C# por exemplo) e uma lógica de cliente(javascript) |
Fazendo a validação
É possível utilizar também grupos de validação, desta forma é possível associar um conjunto de controles a um tipo de validação em especial. Por exemplo é possível fazer em um formulário que o botão OK faça a validação de um conjunto de controles, já o botão Recuperar Senha obrigaria o preenchimento somente do e-mail.
Há disponível na página o método GetValidators que retorna os validadores do grupo de validação definido.
Existe também o controle ValidationSummary que mostra a lista de erros gerados pelos validadores.
Quando usa-se validadores é importante verificar se o estado dos controles que usado por determinada ação está válido. Para isso há disponível:
Os controles de validação tem a propriedade IsValid que informa se o controle é válido
A página tem o método Validate, que pode receber o grupo de validação que deseja-se verificar
A página tem a propriedade IsValid, que informa se a validação aconteceu com sucesso
A página tem o método GetValidators, que pode receber o grupo de validação e retorna os controles de validação.
O momento que ocorre a validação
A validação acontece tanto em cliente quanto em servidor. Em servidor a validação acontece após a inicialização da página(depois de ler o viewstate e dados de postback) e antes que os eventos de alteração e click sejam disparados.
A validação em cliente acontece se o navegador suportar ECMAScript(Javascript). Isto melhora a interatividade, já que as validações assim que o usuário muda o foco de um controle que teve seu valor alterado.
A validação de servidor acontece mesmo que a validação em cliente esteja habilitada, já que usuários mal intencionados poderiam burlar a validação no cliente.
Mostrando as mensagens de erro
Por padrão os controles de validação não estão visíveis ao renderizar a página, e ao não atender uma validação as mensagens de erro são exibidas.
Cada controle de validação pode definir as mensagens de erro através das propriedades:
ErrorMessage : Define a mensagem de erro que exibida no ValidationSummary ou no próprio controle de validação caso a propriedade Text não esteja definida
Text : Define a mensagem de erro que é exibida no controle de validação
Os controles de validação ainda tem a propriedade Display que podem ter os valores:
None: a mensagem de erro não é mostrada no controle
Static: o espaço para a mensagem de erro é reservada no controle de validação
Dynamic: o espaço para a mensagem de erro é utilizado se houver algum erro
Há ainda o controle ValidationSummary que mostra todos os erros da página como sumário. É possível definir a propriedade DisplayMode:
List: mostra os erros em lista, onde cada mensagem de erro é uma nova linha
BulletList: mostra os erros como uma lista de marcadadores
SingleParagraph: as mensagens de erros são mostradas num único parágrafo
Há ainda as propriedades ShowMessageBox que define se as mensagens de erro serão mostradas através de uma caixa de mensagem para o usuário e a propriedade ShowSummary que define se as mensagens de erro serão mostradas como sumário.