Artigos / Tekever.eu

Artigos de desenvolvimento e opinião em tecnologia.

Secções:

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

 


Formularios 4. Criar Validações Próprias - ASP.NET/C#

  2006-08-01




O Visual Studio é sem dúvida uma ferramenta muito útil, sobretudo para começar a programar sem ter de saber de raiz muito do código fonte; No entanto pode acontecer não existirem soluções criadas para situações mais ou menos específicas e nesses casos o programador terá sempre de adaptar o código à sua medida consoante a função a desempenhar. Em seguida mostram-se duas situações em que foi necessário fazer mais alguma programação. Para o primeiro caso de uma checkbox num formulário que se quer validar seleccionada podemos aplicar um Custom Validator, isto é uma validação “adaptada”, e programá-lo convenientemente.
Por exemplo, num formulário em que o utilizador tem de aceitar os termos de utilização da pagina para prosseguir, temos o seguinte código:

 
<asp:CheckBox ID="frmCondicoes" runat="server" /> <b>Li e aceito condições de
utilização</b><br />
<asp:CustomValidator ID="ValidaCondicoes" runat="server" ErrorMessage="tem de
aceitar os termos de utilização"
OnServerValidate="ServerValidation"
Display="Dynamic" />
 


A programação é feita entre tags de script no topo da página, em código C#:

    ["csharp"]
// aqui fica o código para a validação para a checkbox
void ServerValidation(object source, ServerValidateEventArgs args)
{
args.IsValid = frmCondicoes.Checked;
}
 
 


No fundo estamos a dizer que a validação só é concretizada caso a checkbox esteja realmente seleccionada.

Código Completo (Exemplo CheckBox)

 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="form1.aspx.cs"
Inherits="form1" %>
 
<script runat="server">

// aqui fica o código para a validação para a checkbox
void ServerValidation(object source, ServerValidateEventArgs args)
{
args.IsValid = frmCondicoes.Checked;
}

</script>
 
<!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 1 – Validação CheckBox</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Tania Penedo" />
<link rel="stylesheet" type="text/css" href="media/style.css" />
</head>
 
<body>
<form id="form1" runat="server">
 
<asp:CheckBox ID="frmCondicoes" runat="server" /> <b>Li e aceito condições de
utilização</b><br />
<asp:CustomValidator ID="ValidaCondicoes" runat="server" ErrorMessage="tem de
aceitar os termos de utilização"
OnServerValidate="ServerValidation"
Display="Dynamic" />
<br />
<asp:Button ID="btnOK" runat="server" Text="OK" />
 
</form>
</body>
</html>
 


Outro caso interessante pode ser por exemplo um que tenha a ver com validação de ficheiros descarregados. Vamos a título de exemplo validar uma imagem descarregada. Os parâmetros que se teve em conta foram: a introdução efectiva de um ficheiro (deverá ter mais de 4 caracteres – já contando com “.jpg”), o tipo de ficheiro (deverá ser .jpg) e o tamanho do mesmo (para não exceder muito os 500K).


Código Completo (Exemplo: Validação de uma Imagem Descarregada tendo em conta formato, e tamanho)


 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="form2.aspx.cs"
Inherits="form2" %>
 
<script runat="server">
 
// aqui fica o código para a validação do ficheiro de Imagem
void ServerValidation(object source, ServerValidateEventArgs args)
{
ValidaImagem.ErrorMessage = "";

if (frmImagemEnviada.PostedFile.FileName.Trim().Length < 5)
{
ValidaImagem.ErrorMessage = "é necessario introduzir um ficheiro";
args.IsValid = false;
 
}
else
{
if (frmImagemEnviada.PostedFile.ContentType != "image/jpeg" &&
frmImagemEnviada.PostedFile.ContentType != "image/pjpeg")
{
ValidaImagem.ErrorMessage = "tipo ficheiro invalido (tem de ser
extensão "
.jpg")";
args.IsValid = false;
}
 
else if (frmImagemEnviada.PostedFile.ContentLength > 600000)
{
ValidaImagem.ErrorMessage = "tamanho superior a 500 Kb";
args.IsValid = false;
}

}

}
 
</script>
 
<!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 2 – Validação de Ficheiro de Imagem</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Tania Penedo" />
<link rel="stylesheet" type="text/css" href="media/style.css" />
</head>
 
<body>
<form id="form1" runat="server">
<asp:FileUpload ID="frmImagemEnviada" runat="server" class='formstyle' />
<br /><asp:CustomValidator ID="ValidaImagem" runat="server"
OnServerValidate="ServerValidation" Display="Dynamic" Font-Bold="true" />
<br />
 
<asp:Button ID="btnOK" runat="server" Text="OK" />
 
</form>
</body>
</html>
 


nota: ver continuação da construção de formulários em Formularios 5. Envio de Email


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 2008-01-29 por Gilda
olá, mais uma vez.
este manual tem me ajudado imenso.
Mas no segundo exemplo, as validações estão a estoirar quando duas condições não se verificam em simultâneo, por exemplo, não ser jpeg e ter mais de 500kb.
Pode-me ajudar?
Obrigada

Enviado em 2007-10-19 por José
Gostava de saber fazer este tipo de formulário.

Enviado em 2006-11-15 por dotnetspace
asp.net 2.0 code examples in www.dotnetspace.com

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.