NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
ASP.NET - CURSO COMPLETO Autor: Júlio Battisti |
|||
---|---|---|---|
Lição 059 - Capítulo 08 - Validation Controls: Definição e Propriedades Gerais | |||
Para facilitar a tarefa de fazer a validação dos dados digitados em um formulário, é que foram criado os controles de validação – Validation Controls. Por que estes controles não são chamados de HTMLServer Validation Controls? No Capítulo 7 nos vimos que para cada tag HTML utilizada para a criação de formulários, existe um HTML Server Control correspondente. A vantagem dos HTML Server Controls é que os mesmos são compilados como objetos em uma página ASP.NET. Sendo objeto temos acesso aos métodos e propriedades do controle. Já os controles de validação não possuem correspondentes no HTML. São na verdade controles completamente novos e não uma melhoria em relação a controles já existentes. Os controles de validação possuem as mesmas características que os chamados Web Server Controls (que serão estudados no Capítulo 9). Estes controles iniciam com a palavra asp, conforme exemplo a seguir, onde temos uma pequena amostra da sintaxe do controle RequiredFieldValidator: <asp:RequiredFieldValidator Atributo1 Atributo2 ... Atributon> </asp:RequiredFieldValidator> Nota: Estudaremos o controle RequiredFieldValidator em detalhes ainda neste capítulo. Outra diferença é quanto a localização das classes bases, ou seja, das classes das quais são derivados os controles. Os HTMLServer controls são derivados de classes do namespace System.Web.UI.HtmlControls, já os Web Server Controls, dos quais fazem parte os controles de validação, são derivados de classes contidas no namespace System.Web.UI.WebControls. Como é que utilizamos os controles de validação? Na criação do formulário, devemos associar um controle de validação com cada campo onde os dados devam ser validados. Por exemplo, se existe um campo Nome o qual é de preenchimento obrigatório, devemos associar um campo RequiredFieldValidator com o campo nome que é obrigatório. Quando o usuário envia a página para processamento, cada controle de validação irá checar o valor digitado no controle associado para verificar se está tudo OK, ou seja, para verificar se o formulário passou no teste de validação. Basta que um único campo não atenda as regras de validação definidas, para que o formulário não passe no teste de validação. Neste caso podemos exibir uma mensagem de erro descrevendo o(s) controle(s) que não passou(aram) na validação, em um controle do tipo ValidationSummary. Por serem controles de servidor, mais especificamente, Web Server Controls, os controles de validação possuem uma série de funcionalidades embutidas que os tornam extremamente interessantes para a criação de aplicações Web. Dizemos que foi embutida “inteligência” nestes controles. Estas funcionalidades, nas versões anteriores do ASP, tinham que ser codificadas manualmente pelo programador. Ao embutir funcionalidades nos próprios controles estamos reduzindo a quantidade de código que precisa ser escrita. Esta frase já foi repetida n vezes neste livro e não me canso de repetir: “Com o Framework .NET o programador precisa se preocupar menos com funções básicas, as quais passaram para o controle do Framework .NET; precisando apenas cuidar da lógica da aplicação”. Uma das funcionalidades dos controles de validação é que eles são capazes de, automaticamente, detectar qual o navegador ou dispositivo que o cliente está utilizando, e se for o Internet Explorer 5 ou superior, será gerado código de validação no próprio cliente, no momento da criação da página. Em outras palavras. Ao carregar uma página, no IE 5 ou superior, página esta que contém controles de validação, será gerado, automaticamente, código para fazer a validação no próprio cliente, evitando que a página seja enviada para o servidor se algum controle não tiver passado no teste de validação. Nesta situação a página somente será enviada para processamento quando todos os controles tiverem passado no teste de validação. Para criar esta mesma funcionalidade nas versões anteriores do ASP, tínhamos que escrever uma boa quantia de código. O código de validação gerado automaticamente, no cliente, é criado utilizando-se da linguagem DHTML – Dynamic HTML. Para maiores informações sobre DHTML consulte o seguinte endereço: www.wdvl.com. Importante= Mesmo que o código para validação no cliente tenha sido gerado, quando a página é enviada para o servidor, a validação é feita pelos Validation Controls, para garantir que resultados incorretos sejam inseridos no banco de dados. Pode acontecer de a página ter sido modificada no caminho entre o navegador do cliente e o servidor IIS. Neste caso os dados que foram digitados e passaram na validação foram modificados por um hacker e não são os mesmos que chegaram no servidor. Por isso a validação no servidor funciona como uma proteção extra. Claro que isso não dispensa o uso de outras técnicas de segurança como por exemplo a criptografia e Certificados Digitais. Falaremos um pouco mais sobre Segurança, no último capítulo deste livro. Se quisermos é possível desabilitar a validação no cliente. Para isso temos uma propriedade chamada EnableClientScript, da classe BaseValidator, da qual todos os controles de validação são derivados. A propriedade EnableClientScript é do tipo Boleana. – True ou False. Estudaremos a classe BaseValidator logo em seguida. Ao desabilitarmos a validação no cliente (definindo EnableClientScript = False), podemos criar mensagens personalizadas de erro, ao invés de utilizar as mensagens pré-definidas e o controle ValidationSummary. A Mãe de todos? Ou seria o Pai de todos? Todos os controles de validação são derivados de uma classe base chamada BaseValidator. Esta classe faz parte do namespace System.Web.UI.WebControls. Por serem baseados na classe BaseValidator, os controles de validação herdam as propriedades e métodos desta classe. Principais propriedades da classe BaseValidator Neste tópico vamos apresentar as principais propriedades da classe BaseValidator. Para uma descrição completa, de todo os métodos e propriedades da classe BaseValidator, abra a documentação do Framework .NET (Iniciar -> Programas -> Microsoft .NET Framework SDK -> Documentation) e , uma vez dentro da documentação, siga o seguinte caminho: .NET Framework SDK .NET Framework Reference .NET Framework Class Library System.Web.UI.WebControls BaseValidator Class Vamos ao estudo dos principais métodos:
Principais métodos da classe BaseValidator Vamos descrever alguns métodos da classe BaseValidator e apresentar um exemplo prático. O objetivo deste primeiro exemplo é ver os controles de validação em funcionamento. Não iremos explicar o código do exemplo neste momento. A medida que formos avançando no capítulo e explicando os diversos controles de validação disponíveis, você poderá voltar a este exemplo e, facilmente entender o código do mesmo. Principais métodos da classe BaseValidator:
Um exemplo, só para começar Vamos apresentar um pequeno exemplo, para que possamos ver os controles de validação em funcionamento. Conforme explicado anteriormente, não nos deteremos na explicação do código do exemplo, neste momento. No exemplo proposto, temos um formulário com um campo para digitação, onde o usuário deve digitar um valor entre 1 e 10. Se o usuário não digitar nada, ao clicar no botão Enviar será exibida a seguinte mensagem: “Você não digitou nenhum número!!”. Quando o usuário digita um número entre 1 e 10, a propriedade IsValid torna-se verdadeira e o evento Click do botão Enviar será executado. Neste evento é gerado um número aleatório entre 1 e 10. Se o número digitado pelo usuário, for igual ao número gerado aleatoriamente, é exibida a seguinte mensagem: “Parabéns, você acertou!!!”, caso contrário será exibida a seguinte mensagem: "Sinto muito, você errou!!!". Nota: O exemplo apresentado é baseado em um exemplo da documentação do Framework .NET. Na Listagem 8.1 temos o código para o exemplo proposto. Listagem 8.1 – O primeiro exemplo com controles de validação – chap8ex1.aspx. <html> <head> <script language="C#" runat="server"> void Button_Click(Object sender, EventArgs e) { Random rand_number = new Random(); Compare1.ValueToCompare = rand_number.Next(1, 10).ToString(); Compare1.Validate(); if (Page.IsValid) { lblOutput.Text = "Parabéns, você acertou!!!"; } else { lblOutput.Text = "Sinto muito, você errou!!!"; } lblOutput.Text += "<br><br>" + "O número correto era: " + Compare1.ValueToCompare; } </script> </head> <body> <form runat=server> <h3>Exemplo de validação.</h3> <h5>Digite um número entre 1 e 10:</h5> <asp:RequiredFieldValidator id="Require1" ControlToValidate="TextBox1" Type="Integer" ErrorMessage="Você não digitou nenhum número!!" Text="*" runat="server"/> <asp:TextBox id="TextBox1" runat="server"/> <asp:CompareValidator id="Compare1" ControlToValidate="TextBox1" ValueToCompare="0" EnableClientScript="False" Type="Integer" ErrorMessage="Número Incorreto!!" Text="*" runat="server"/> <br> <br> <asp:Button id="Button1" Text="Enviar" OnClick="Button_Click" runat="server"/> <br> <br> <asp:Label id="lblOutput" Font-Name="verdana" Font-Size="10pt" runat="server"/> <br> <br> <asp:ValidationSummary id="Summary1" runat="server"/> </form> </body> </html> Digite o código da Listagem 8.1 e salve o mesmo em um arquivo chamado chap8ex1.aspx, na pasta chap8, dentro da pasta wwwroot, conforme descrito no item: “Check List para acompanhar os exemplos deste livro”, no Capítulo 6. Para acessar esta página utilize o seguinte endereço: http://localhost/chap8/chap8ex1.aspx Dê um clique no botão Enviar, sem digitar nenhum valor no campo para digitação. Você obterá o resultado indicado na Figura 8.1.
Agora digite um número entre 1 e 10 e clique no botão Enviar. Se você acertar o número gerado pelo código do evento Button_Click, será exibida a mensagem: "Parabéns, você acertou!!!", caso contrário será exibida a mensagem indicada na Figura 8.2.
Prometi que não iria comentar o código deste primeiro exemplo, mas apenas um comentário rápido, em relação a geração de números aleatórios. Para gerar um número aleatoriamente, entre 1 e 10, declaramos e inicializamos uma variável (talvez seria melhor dizer um objeto) do tipo Random: Random rand_number = new Random(); A variável rand_number é baseada na classe Random, do namespace System. Em seguida utilizamos o método Next da classe Random, para gerar um número aleatório entre 1 e 10. Agora vamos estudar, em detalhes, os diversos controles de validação do ASP.NET. |
|||
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2024 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI