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.
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.
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.
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+)*”/>
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.