Artigos / Tekever.eu

Artigos de desenvolvimento e opinião em tecnologia.

Secções:

Linux | Windows | .NET / ASP | LAMP | Java | Só Conversa |

 


Formularios 3. Validar Campos - ASP.NET/C#

  2006-07-12




Validação de uma inputbox simples:

Para validar caixas de texto podemos recorrer a ferramentas do Visual Studio já adaptadas para o efeito. Por exemplo para validar que haja um texto inserido no campo de nome podemos usar um Required Field Validator e editar algumas das suas propriedas (na caixa de propriedades canto inferior direito) como o nome do controlador, a mensagem de erro que deverá aparecer, se a validação é feita do lado do servidor(EnableClientScript="false") ou do lado do utilizador(EnableClientScript="true"), etc.



Na Toolbox escolhendo o grupo Validation, temos vários tipos de validação disponíveis. Aqui arrastamos o pretendido para o nosso código (convém ficar logo asseguir ao controlo que estamos a validar – a inputbox do nome)
Vejamos para o caso da validação do campo de nome (cujo ID=frmNome):

 
<asp:RequiredFieldValidator ID="ValidaNomeObrigatorio" runat="server"
ErrorMessage="nome obrigatorio" ControlToValidate="frmNome" Font-Bold="true"
Display="Dynamic" EnableClientScript="true"> </asp:RequiredFieldValidator>
 


Aqui foi alterado o nome do controlador (ID), a mensagem de erro foi editada, a validação escolhida foi do lado do utilizador, e o mais importante de tudo a colocar é o controlo que se quer validar: ControlToValidate="frmNome" !!!
Com a propriedade Display ser Dynamic fazemos com que o design se ajuste consoante a mensagem de erro apareça ou não (dependendo sempre claro do sitio onde colocamos o código do controlador). Aqui não vai fazer grande diferença pois não estamos a usar nenhum design especial apenas uma página em branco, mas geralmente quando programamos sobre um código html já construido pode alterar alguma da estrutura, e nesses casos convém escolher Dynamic por razões estéticas obvias…
Este tipo de validação também pode ser usado por exemplo na nossa RadioButtonList para garantir que uma opção é escolhida:

 
<asp:RequiredFieldValidator ID="ValidaFerias" runat="server" ErrorMessage="tem
de escolher um destino de ferias"
ControlToValidate="rblFerias"
Font-Bold="True"></asp:RequiredFieldValidator>
 


Validação de um tipo específico de texto a ser introduzido:

No caso de um email não queremos simplesmente garantir que este seja introduzido, convém também que este seja um endereço de email válido. Para isso escolhemos no grupo de validações a que aqui melhor se ajusta para isso: um RegularExpressionValidator. O que este faz, no caso do email, é comparar se o texto introduzido contém por exemplo um caracter “@”, se contém texto antes e depois etc, através da expressão regular introduzida (ValidationExpression), de modo a que no final possamos ter um texto indicativo de endereço de email correcto (já que nunca podemos garantir que exista de facto!). Existem várias expressões regulares que podem ser obtidas na net, tal como esta, mas para outro tipo de validações:

 
<asp:RegularExpressionValidator ID="ValidaEmailValido" runat="server"
ErrorMessage="email inválido" Display="Dynamic" ControlToValidate="frmEmail"
ValidationExpression="^ -zA-Z] EnableClientScript="true"
Font-Bold="true"></asp:RegularExpressionValidator>
 


Validação de uma DropDownList:

O melhor para validar que uma opção é escolhida da DropDownList, é um controlo por comparação:

 ["csharp"]
<asp:CompareValidator ID="ValidaCidade" runat="server" ErrorMessage="tem de
escolher uma opção"
ControlToValidate="frmCidade" Display="Dynamic"
EnableClientScript="true" Font-Bold="true" Operator="NotEqual" Type="Integer"
ValueToCompare="1"></asp:CompareValidator>


Na nossa lista de cidades escolhemos o primeiro item com a palavra “Escolher” e o valor=1.
O que esta validação faz é garantir que o item escolhido não é este (Operator="NotEqual"), mas outro valor qualquer da lista cujo valor seja diferente de 1 (ValueToCompare="1").


Código Completo da Pagina de Formulário:

 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="form.aspx.cs"
Inherits="form" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Formulário Exemplo - Validação de Campos de Dados</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Tania Penedo" />
</head>
<body>
<form id="form1" runat="server">


<%--Campo de Nome--%>
Nome:
<asp:TextBox ID="frmNome" runat="server" Width="274px"></asp:TextBox>
<asp:RequiredFieldValidator ID="ValidaNomeObrigatorio" runat="server"
ErrorMessage="nome obrigatorio" ControlToValidate="frmNome" Font-Bold="true"
Display="Dynamic" EnableClientScript="true"> </asp:RequiredFieldValidator>
 
<br /><br />
 
<%--Campo de email--%>
Email:
<asp:TextBox ID="frmEmail" runat="server" Width="213px"></asp:TextBox>
<asp:RequiredFieldValidator ID="ValidaEmailObrigatorio" runat="server"
ErrorMessage="email obrigatório" ControlToValidate="frmEmail" Font-Bold="true"
Display="Dynamic" EnableClientScript="true"> </asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="ValidaEmailValido" runat="server"
ErrorMessage="email inválido" Display="Dynamic" ControlToValidate="frmEmail"
ValidationExpression="^ -zA-Z] EnableClientScript="true"
Font-Bold="true"></asp:RegularExpressionValidator>
 
<br /><br />
 
<%--DropDown List de itens inseridos --%>
Cidade:
<asp:DropDownList ID="frmCidade" runat="server" >
<asp:ListItem Value="1">Escolher</asp:ListItem>
<asp:ListItem Value="2">Lisboa</asp:ListItem>
<asp:ListItem Value="3">Obidos</asp:ListItem>
<asp:ListItem Value="4">Viana de Castelo</asp:ListItem>
<asp:ListItem Value="5">Tavira</asp:ListItem>
</asp:DropDownList>
<asp:CompareValidator ID="ValidaCidade" runat="server" ErrorMessage="tem de
escolher uma opção"
ControlToValidate="frmCidade" Display="Dynamic"
EnableClientScript="true" Font-Bold="true" Operator="NotEqual" Type="Integer"
ValueToCompare="1"></asp:CompareValidator>
 
<br /><br />
 
<%--Dropdown List de Países provenientes da base de dados--%>
Pais:
<asp:DropDownList ID="frmPais" runat="server" DataSourceID="SqlDataSource1"
DataTextField="paises_nome" DataValueField="paises_id"
CausesValidation="false"></asp:DropDownList>
<asp:CompareValidator ID="ValidaPais" runat="server" ErrorMessage="escolha uma
opção"
ControlToValidate="frmPais" Operator="NotEqual" ValueToCompare="1"
EnableClientScript="true" Display="Dynamic"
Font-Bold="true"></asp:CompareValidator>
 
<br /><br />
 
<%--Radio Button List de Destinos de Férias--%>
<asp:RequiredFieldValidator ID="ValidaFerias" runat="server" ErrorMessage="tem
de escolher um destino de ferias"
ControlToValidate="rblFerias"
Font-Bold="True"></asp:RequiredFieldValidator>
<br />Destino de Férias:<br />
<asp:RadioButtonList ID="rblFerias" runat="server">
<asp:ListItem Value="1">St Petersburg</asp:ListItem>
<asp:ListItem Value="2">Tokyo</asp:ListItem>
<asp:ListItem Value="3">Viena</asp:ListItem>
</asp:RadioButtonList>

<br /><br />
<asp:Button ID="btnFormulario" runat="server" Text="OK" />

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$
ConnectionStrings:conexão_BD %>"

SelectCommand="SELECT [paises_id], [paises_nome] FROM [paises]">
</asp:SqlDataSource>

</form>
</body>
</html>
 





nota: ver continuação da construção de formulários em Formularios 4. Criar Validações Próprias



Escrito por Tânia Penedo
Website do autor: http://www.taniapenedo.com
Dados do autor: Programação multi-plataforma; C#, PHP, Java, MySQL, SQL-Server.

Comentários

Comentários a este artigo

Enviado em 2010-06-29 por Jorge
Muito bom o artigo!

Enviado em 2008-01-23 por Gilda Garcia Melo
Olá,
Este seu manual está-me a dar uma grande ajuda para iniciar os forms em asp.net.
Muito obrigada por disponibilizar esta informação.
Nesta página surgiu-me uma dúvida, relativamente ao campo ValidationExpression para o e-mail, em que me parece que não será só aquilo (\"^-zA-Z\"), pode, pf, verificar se o código está realmente correcto.
Muito obrigada.

Enviado em 2006-09-14 por Ramon Alvaro
esta muy bueno el ejercicio y me es de mucha ayuda gracias y la felicito por la publicacion y que siga publikando mas cosas...!!

Faça um comentário

Comentário

Nome
E-mail

Este comentário só ficará válido depois de fazer clique no link que lhe será enviado já a seguir para o e-mail indicado. Como tal garanta que o seu e-mail está válido e operacional, se não receber o nosso e-mail verifique os seus filtros de SPAM, ou a caixa de Lixo/Trash do seu cliente de e-mail.

 

Avaliar artigo

Avalie este artigo

 



Nome
E-mail

Este voto só ficará contabilizado depois de fazer clique no link que lhe será enviado já a seguir para o e-mail indicado. Como tal garanta que o seu e-mail está válido e operacional, se não receber o nosso e-mail verifique os seus filtros de SPAM, ou a caixa de Lixo/Trash do seu cliente de e-mail.

 

 

 

 

Recomendar este artigo a alguém

Envie a alguém conhecido

De:  
Nome E-mail
 
Para:  
Nome E-mail
Será enviado um link da página deste artigo para o e-mail que indicar como destino.