Como: Validar com uma função personalizada para controles de servidor ASP.NET
Se controles de validação ASP.NET existentes não atenderem às suas necessidades, você pode definir uma função personalizada de validação do lado do servidor e chamá-la usando o controle CustomValidator.Você também pode adicionar validação do lado do cliente para verificar a entrada do usuário antes da página ser enviada escrevendo uma função em ECMAScript (JavaScript) que duplica a lógica do método do lado do servidor.
Você deve executar a validação do lado do servidor mesmo que você use uma verificação do lado do cliente.Validação do lado do servidor evita que usuários estejam ignorando validação por desativar ou alterar o script de cliente.
Observação de segurança: |
---|
Por padrão, páginas da Web ASP.NET validam automaticamente que usuários mal-intencionados não estão tentando enviar elementos HTML ou scripts para seu aplicativo.Para obter mais informações, consulte Visão Geral de Scripts Maliciosos. |
Para validar no servidor usando uma função personalizada
Adicione um controle CustomValidator para a página e defina as seguintes propriedades:
Propriedade
Descrição
A identificação do controle que você está validando.
Propriedades que especificam o texto e a localidade do erro ou erros que serão exibidos se a validação falhar.Para obter detalhes, consulte:Como: Controle validação erro mensagem Display for ASP.NET servidor Controls.
Criar um manipulador de eventos baseado no servidor para o controle do evento ServerValidate.Este evento é chamado para realizar a validação.O método tem uma assinatura, como a seguinte:
Protected Sub CustomValidator1_ServerValidate(ByVal _ source As System.Object, ByVal args As _ System.Web.UI.WebControls.ServerValidateEventArgs) _ Handles CustomValidator1.ServerValidate End Sub
protected void ValidationFunctionName(object source, ServerValidateEventArgs args) { }
O parâmetro source é uma referência para o controle de validação personalizado que dispara esse evento.A propriedade args.Value conterá o entrada do usuário para validar.Definir args.IsValid para true se o valor for válido, caso contrário, false.
O exemplo de código a seguir mostra como você pode criar validação personalizada.O manipulador de eventos determina se a entrada do usuário possui oito caracteres ou mais.
Protected Sub TextValidate(ByVal source As System.Object, _ ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) _ Handles CustomValidator1.ServerValidate args.IsValid = (args.Value.Length >= 8) End Sub
protected void TextValidate(object source, ServerValidateEventArgs args) { args.IsValid = (args.Value.Length >= 8); }
Vincule o manipulador de eventos ao método usando código como o seguinte:
<asp:textbox id="TextBox1" ></asp:textbox> <asp:CustomValidator id="CustomValidator1" OnServerValidate="TextValidate" ControlToValidate="TextBox1" ErrorMessage="Text must be 8 or more characters."> </asp:CustomValidator>
<asp:textbox id="TextBox1" ></asp:textbox> <asp:CustomValidator id="CustomValidator1" OnServerValidate="TextValidate" ControlToValidate="TextBox1" ErrorMessage="Text must be 8 or more characters."> </asp:CustomValidator>
Adicione um teste em seu código de página Web do ASP.NET para verificar se há validade.Para obter detalhes, consulte:Como: Testar a validade por programação controles de servidor ASP.NET.
Para criar lógica de validação personalizada no cliente
Crie uma função de validação no ECMAScript (JavaScript, JScript).
O exemplo de código a seguir ilustra validação personalizada do lado do cliente.Um trecho da página mostra um controle TextBox referenciado por um controle CustomValidator.O controle de validação chama uma função script de cliente chamada validateLength para certificar-se que o usuário inseriu pelo menos oito caracteres no controle TextBox.
<script type="text/javascript"> function validateLength(oSrc, args){ args.IsValid = (args.Value.length >= 8); } </script>
<script type="text/javascript"> function validateLength(oSrc, args){ args.IsValid = (args.Value.length >= 8); } </script>
<asp:Textbox id="text1" text=""></asp:Textbox> <asp:CustomValidator id="CustomValidator2" ControlToValidate = "text1" ErrorMessage = "You must enter at least 8 characters!" ClientValidationFunction="validateLength" > </asp:CustomValidator>
<asp:Textbox id="text1" text=""></asp:Textbox> <asp:CustomValidator id="CustomValidator2" ControlToValidate = "text1" ErrorMessage = "You must enter at least 8 characters!" ClientValidationFunction="validateLength" > </asp:CustomValidator>
Adicione um teste em seu código de página Web do ASP.NET para verificar se há validade.Para obter detalhes, consulte:Como: Testar a validade por programação controles de servidor ASP.NET.
Consulte também
Conceitos
Tipos de validação para controles de servidor do ASP.NET