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.
|