Introdução

Um Validation Server Control é um controle utilizado para validação de dados de entrada inseridos através de outros controles. Se os dados disponibilizados não suprirem a validação realizada, será exibida uma mensagem de erro na tela.

Neste artigo conheceremos um pouco melhor os controles da aba Validation da Toolbox do Visual Studio para aplicações web.

ValidationSummary

O ValidationSummary é utilizado para mostrar um mensagem de erro de itens que estão sendo preenchidos ou selecionados de forma incorreta. Este controle é utilizado pelos demais controles de validação para agrupar a mensagem de erro e mostrar de modo único na tela em formato de texto ou mensagem via Javascript.

Listagem 1: Exemplo de ValidationSummary


<asp:ValidationSummary
ID=”ValidationSummary1”
runat=”Server”
DisplayMode=”BulletList”
ShowMessageBox=”true” 
HeaderText=”Os seguintes erros devem ser verificados.”
ValidationGroup”vg”
ShowSummary=”true”/>

Existem algumas propriedades importantes que merecem destaque neste caso:

  • DisplayMode: ajusta o tipo visual de como o erro será apresentado, neste caso, como BulletList.
  • ShowMessageBox: caso esteja habilitada para true, irá exibir uma mensagem Javascript (alert) na tela.
  • HeaderText: escreve no topo do erro um texto que muitas vezes é utilizado como introdução do erro.
  • ValidationGroup: deve estar de acordo com os controles que serão validados, pois este faz a sintonia entre as parte.
  • ShowSummary: caso esteja habilitado para true, irá mostrar os erros em formato texto na tela.
Exemplo com a propriedade ShowMessageBox habilitada

Figura 1: Exemplo com a propriedade ShowMessageBox habilitada

Este controle, assim como os outros de validação, tem como código renderizado um Javascript que faz todo serviço via client.

RequiredFieldValidator

O RequiredFieldValidator faz uma simples verificação de entrada, ou seja, verifica se o campo está vazio ou diferente do valor inicial. Se o valor do campo for diferente do valor inicial do controle, que pode ser ajustado, então o controle irá mostrar o erro, caso contrário, não exibirá mensagem e vai deixar seguir o processo. Por padrão o valor inicial de um campo é vazio, porém existe uma propriedade que pode fazer com que o valor inicial seja customizado.

Listagem 2: Exemplo de RequiredFieldValidator


<asp:RequiredFieldValidator
ID=”RequiredFieldValidator1”
ValidationGroup=”vg”
runat=”server”
ErrorMessage=”Insira o texto”
ControlToValidate=”TextBox1”>*</ RequiredFieldValidator>

Propriedades que merecem ênfase:

  • ValidationGroup: deve conter valor igual ao do botão de submit e igual ao ValidationSummary.
  • ErrorMessage: mensagem de erro que será exibida em caso de falha na validação.
  • ControlToValidate: deve ser colocado o ID do campo que será validado.
  • InitialValue: especifica o valor inicial que será permitido e verificado.

RangeValidator

O controle RangeValidator é utilizado para verificar, em um único campo, se o valor digitado encontra-se dentro de uma determinada faixa. É possível verificar números, datas e caracteres.

A validação não irá falhar caso o valor de entrada do controle seja vazio, para este caso existe o controle RequiredFieldValidator.

Listagem 3: Exemplo de RangeValidator


<asp:RangeValidator
	ID=”RangeValidator1”
	ControlToValidate=”TextBox1”
	MinimunValue=”2000-01-01”
	MaximumValue=”2020-12-31”
	Type=”Date”
	EnableClientScript=”false”
	Text=”A data deve estar entre 2000-01-01 e 2020-12-31!”
	runat=”server”/>

Algumas propriedades são muito importantes e devem ter uma explicação detalhada:

  • ControlToValidate: que indica qual o controle que será validado.
  • MinimumValue: indica o valor mínimo da faixa de valores.
  • MaximumValue: indica o maior valor possível da faixa.
  • Type: especifica o tipo de dados a ser validado, podendo ser currency, date, Double, integer ou string.
  • EnableClientScript: especifica se a validação em modo client-side está ativa ou não.
  • Text: indica o texto que poderá ser visto na tela e/ou no ValidationSummary como mensagem de erro.
Validação de data por RangeValidator

Figura 2: Validação de data por RangeValidator

A ação de enviar estes dados foi bloqueada e só ira efetuar o submit quando a validação do valor deste campo tiver retorno positivo.

Como todo controle de validação, o RangeValidator também utiliza de Javascript para fazer as validações e o código gerado contém instruções em Javascript.

CompareValidator

O controle CompareValidator é utilizado para comparar o valor de uma entrada de dados com outra entrada de outro controle. Um uso comum disso é para verificação de senhas, caso o usuário digite uma senha e uma confirmação de senha diferente, a validação falhará. Se o campo a ser validado estiver vazio, a validação terá sucesso, neste caso, deve-se utilizar o RequiredFieldValidator.

Listagem 4: Exemplo de CompareValidator


<asp:CompareValidator
	ID=”ppValores”
	Display=”dynamic”
	ControlToValidate=”txt1”
	ControlToCompare=”txt2”
	Type=”String”
	EnableClientScript=”false”
	Text=”Falhou”
runat=”Server”/>

A validação pode ser feita entre dois controles ou entre um controle e uma variável previamente definida, usando a propriedade ValueToCompare.

Validação de igualdade com o CompareValidator

Figura 3: Validação de igualdade com o CompareValidator

Neste caso foi feita uma comparação por string e verificado que os textos digitados nas caixas de texto não são iguais, logo, a validação acusa que é uma ação inválida e não deixa o formulário prosseguir.

Assim como os outros controles, o CompareValidator gera um Javascript para manipular as validações e como mensagem de erro gera uma tag span.

RegularExpressionValidator

O controle RegularExpressionValidator é utilizado para validar um determinado controle utilizando expressões regulares.

Expressão regular é um conceito complexo, porém muito utilizado para validação de dados como, por exemplo email e CEP. Detalhá-las, porém, não é o foco deste artigo.

A seguir pode ser visto um exemplo de validação de um TextBox onde deve ser inserido um email válido.

Listagem 5: Exemplo de RegularExpressionValidator


<asp:RegularExpressionValidator
	ID=”TextBox1”
	runat=”server”
	ErrorMessage=”errormessage”
	ValidationExpression=”\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([=.]\w+)*”/>
Inserção inválida com o controle RegularExpressionValidator

Figura 4: Inserção inválida com o controle RegularExpressionValidator

Finalizamos aqui este artigo, o qual apresentou os controles de validação disponíveis para aplicações ASP.NET que facilitam e garante maior segurança na validação da entrada de dados.

Até a próxima.