Os controles de validação do ASP.NET validam os dados inseridos pelo usuário para garantir que dados inúteis, não autorizados e contraditórios não possam ser armazenados.
ASP.NET fornece os seguintes aspectos de controle de validação:
ObrigatórioFieldValidator
RangeValidator
CompararValidador
Validador de expressão regular (RegularExpressionValidator)
Validador personalizado (CustomValidator)
Controle de resumo de validação (ValidationSummary)
As classes de validação herdam da classe BaseValidator, portanto, herdam suas propriedades e métodos. Portanto, aprender as propriedades e métodos desta classe básica, que é a base de todos os controles de eficácia, será de grande ajuda para o aprendizado posterior:
componentes | descrever |
---|---|
ControlToValidate | Obtém ou define o controle de entrada a ser validado. |
Mostrar | Descreva como as mensagens de erro são exibidas. |
HabilitarClientScript | Indica se o cliente adotou a verificação. |
Habilitado | Habilite ou desabilite o validador. |
Mensagem de erro | Uma string que descreve o erro. |
Texto | Texto a ser exibido se a validação falhar. |
É válido | Indica se o valor de controle é válido. |
SetFocusOnError | Se deve definir o foco para o controle de entrada relevante quando a validação falhar. |
Grupo de validação | Obtém ou define o nome do grupo de validação ao qual esse controle de validação pertence. |
Validar | Executa a validação no controle de entrada associado e atualiza a propriedade IsValid. |
O controle RequiredFieldValidator garante que os campos obrigatórios não estejam vazios. Ele está vinculado principalmente à caixa de texto para permitir que o usuário faça entradas na caixa de texto.
A sintaxe deste controle é a seguinte:
<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"></asp:RequiredFieldValidator>
O controle RangeValidator é responsável por verificar se o valor inserido está dentro da faixa predefinida.
Possui três propriedades específicas:
propriedade | descrever |
---|---|
Tipo | Ele define o tipo de dados. Os tipos de dados disponíveis incluem: Moeda, Data, Duplo, Inteiro e String |
Valor Mínimo | Ele especifica o valor mínimo no intervalo |
Valor Máximo | Ele especifica o valor máximo no intervalo |
A sintaxe deste controle é a seguinte:
<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"></asp:RangeValidator>
O controle CompareValidator valida um valor com base no valor inserido em outro controle de entrada, em um valor numérico constante ou no tipo de dados correto.
Possui as seguintes propriedades específicas:
propriedade | descrever |
---|---|
Tipo | Ele define o tipo de dados. |
ControlToCompare | Especifica o valor no controle de entrada que precisa ser comparado. |
Valor para comparar | Especifica um valor que não muda no controle de entrada. |
Operador | Ele especifica o operador de comparação. Os valores disponíveis incluem: igualdade, desigualdade, maior ou igual a, menor que, menor ou igual a e verificação de tipo de dados. |
A sintaxe básica deste controle é a seguinte:
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>
O controle RegularExpressionValidator permite determinar a validade da entrada combinando-a com uma expressão regular. A expressão regular é definida na propriedade ValidationExpression.
A tabela a seguir resume as estruturas de sintaxe comumente usadas em expressões regulares:
personagem de fuga | descrever |
---|---|
b | Corresponde à tecla backspace. |
t | Aba Correspondências. |
r | Corresponde à tecla Enter. |
v | Corresponde aos caracteres de tabulação verticais. |
f | Corresponde ao caractere de feed do formulário. |
n | Combine novas linhas. |
personagem de fuga. |
Além da correspondência simples de caracteres, um tipo de caracteres pode ser definido para correspondência. Esses caracteres são chamados de curingas.
curinga | descrever |
---|---|
. | Pode corresponder a qualquer caractere, exceto n. |
[abcd] | Pode combinar com qualquer personagem do conjunto. |
[^abcd] | Exclua qualquer personagem do conjunto. |
[2-7a-mA-M] | Corresponde a qualquer caractere dentro de um intervalo específico. |
c | Corresponde a qualquer grupo de caracteres alfanuméricos e ao sublinhado. |
C | Corresponde a qualquer caractere que não seja de palavra. |
s | Combine caracteres como espaços, tabulações, novas linhas, etc. |
S | Corresponde a qualquer caractere que não seja espaço. |
d | Corresponde a qualquer caractere decimal. |
D | Corresponde a qualquer caractere não decimal. |
Os quantificadores podem indicar um número específico de palavras nas quais um caractere ocorre.
quantificador | descrever |
---|---|
* | Zero ou mais correspondências. |
+ | Uma ou mais partidas. |
? | Zero ou um jogo. |
{N} | N partidas. |
{N,} | N ou mais correspondências. |
{N,M} | Jogo entre N e M. |
A sintaxe básica deste controle é a seguinte:
<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"></asp:RegularExpressionValidator>
O controle CustomValidator permite escrever rotinas de validação específicas do lado do cliente e do servidor para validar valores.
A validação do cliente é feita adequadamente por meio de ClientValidationFunction. As rotinas de validação do lado do cliente devem ser escritas em uma linguagem de script que o navegador entenda, como JavaScript ou VBScript.
As rotinas de validação do lado do servidor devem ser geradas pelo manipulador de eventos ServerValidate do controle. As rotinas de validação do lado do servidor devem ser escritas em qualquer linguagem .Net, como C# ou VB.Net.
A sintaxe básica deste controle é a seguinte:
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"></asp:CustomValidator>
O controle ValidationSummary não executa nenhuma validação, mas exibe um resumo de todos os erros na página. Este resumo exibe os valores da propriedade ErrorMessage de todos os controles de validação com falha.
As duas listas de atributos mutuamente inclusivas a seguir listam mensagens de erro:
ShowSummary : exibe informações de erro em um formato especial.
ShowMessageBox : exibe mensagens de erro em uma janela separada.
A sintaxe básica deste controle é a seguinte:
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />
Páginas complexas terão diferentes conjuntos de informações em diferentes níveis. Neste caso, grupos diferentes terão verificações diferentes. Esta situação pode ser resolvida utilizando grupos de verificação.
Para criar um grupo de validação, você deve colocar o controle de entrada e o controle de validação no mesmo grupo lógico configurando suas propriedades ValidationGroup.
O exemplo a seguir descreve um formulário de quatro partes que será preenchido por toda a escola para concorrer à presidência. Aqui, usaremos controles de validação para validar o que o usuário inseriu.
Isto é o que parece na visualização Design:
O código desta parte é o seguinte:
<form id="form1" runat="server"> <table> <tr> <td colspan="3" align="center"> <asp:Label ID="lblmsg" Text="Formulário de eleição do presidente: Escolha seu presidente" runat="server" /> </td> </tr> <tr> <td> Candidato: </td> <td> <asp:DropDownList ID="ddlcandidate" runat="server" > <asp:ListItem>Escolha um candidato</asp:ListItem> <asp:ListItem>M H Kabir</asp:ListItem> <asp:ListItem>Steve Taylor</asp:ListItem> <asp:ListItem>John Abraham</ asp:ListItem> <asp:ListItem>Vênus Williams</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Escolha um candidato" InitialValue="Escolha um candidato"> </asp:RequiredFieldValidator> </td> </tr> <tr> < td> Casa: </td> <td> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>Vermelho</asp:ListItem> <asp:ListItem>Azul</asp:ListItem> <asp:ListItem>Amarelo</asp:ListItem> <asp:ListItem>Verde</asp:ListItem> </ asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="server" ControlToValidate="rblhouse" ErrorMessage="Digite o nome da sua casa" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td> Classe: </td> <td> <asp:TextBox ID="txtclass " runat="servidor"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="servidor" ControlToValidate="txtclass" ErrorMessage="Insira sua classe (6 - 12)" MaximumValue="12" MínimoValue="6" Type="Integer"> </asp:RangeValidator> </td> </tr> <tr> <td> E-mail: </td> <td> <asp:TextBox ID="txtemail" runat="server"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="Digite seu e-mail" ValidationExpression="w+([-+.']w+)*@w+([ -.]w+)*.w+([-.]w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" onclick="btnsubmit_Click" style="text-align: center" Text= "Enviar" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Erros:" /></form>
O código do botão enviar é o seguinte:
protegido void btnsubmit_Click(objeto remetente, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "Obrigado" } else { lblmsg.Text = "Preencha todos os campos" }};