Partilhar via


Como: Validar Programmatically for ASP.NET servidor Controls

Por padrão, controles de validação ASP.NET executam validação automaticamente quando a página é lançada de volta para o servidor, após a inicialização de página (após têm dados de postagem e estado de exibição foi processada), e antes do código de tratamento de eventos é chamado.Os controles também podem executar a validação no navegador se o navegador oferecer suporte para script de cliente.

No entanto, há ocasiões quando talvez você queira executar a validação por meio de programação.Você pode validar por programação sob essas circunstâncias:

  • Se os valores de validação não estiverem definidas até tempo de execução.Por exemplo, se você estiver trabalhando com um controle RangeValidator, você poderá ter definindo suas propriedades MinimumValue e MaximumValue em tempo de execução com base nos valores inseridos pelo usuário.Nesse caso, a validação padrão não funciona, porque no momento que a página chamar os controles de validação para realizar a validação, haverá informações insuficientes no controle RangeValidator.

  • Se você quiser determinar a validade de um controle (ou da página como um todo) no manipulador de eventos Page_Load.Nesse estágio de processamento de página, os controles de validação ainda não foram chamados, portanto, a propriedade IsValid da página ou de controles individuais não está definida.(Uma exceção é apresentada se você tentar obter o valor da propriedade.) No entanto, se você quiser determinar de validade, você pode chamar a validação por meio de programação.

  • Se você estiver adicionando controles (controles de entrada ou controles de validação) em tempo de execução.

Mais geralmente, você pode validar por meio de programação a qualquer momento que você precisar ter controle preciso sobre quando a validação é executada.

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.Caso você tenha desativado esse recurso, você pode chamar o método ValidateInput você mesmo.Para obter mais informações, consulte Visão Geral de Scripts Maliciosos.

Para validar por meio de programação

  • Chamar o método Validate do controle de validação.

    O controle executará sua verificação e irá definir a propriedade IsValid do controle e da página.Se tiver sido detectado um erro, quando a página é retornada para o usuário, mensagens de erro serão exibidas como de costume.

    O exemplo de código a seguir mostra como você pode definir propriedades por programação.Nesse caso, um página da Web ASP.NET faz reservas em um resort que apresenta um tour grátis durante cada visita.Os usuários devem inserir uma data de chegada e a data de partida e em seguida, agendar o tour durante sua visita.Um controle RangeValidator é usado para garantir que o usuário inseriu um formato de data típico, e que o tour data esteja entre as datas de chegada e saída.

    Observação:

    Se um usuário inserir um valor que não pode ser convertido em uma data, o controle de validador irá acionar uma exceção.Para maior clareza, este exemplo não inclui manipulação de erro.

    As datas de partida e chegada provenientes de dois controles de servidor Web TextBox na página, txtArrival e txtDeparture.A data tour é inserida em um terceiro controle TextBox, txtTourDate, que é validado pelo controle RangeValidator.

    Observação:

    Durante a validação por meio de programação, você deve desativar script de cliente para que o controle não mostrare a mensagem de erro antes de seu código de validação executar no lado do servidor.Para obter detalhes, consulte:Como: desabilitar validação para controles de servidor ASP.NET.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
     System.EventArgs) Handles Button1.Click
        RangeValidator1.MinimumValue = txtArrival.Text
        RangeValidator1.MaximumValue = txtDeparture.Text
        RangeValidator1.Type = ValidationDataType.Date
        RangeValidator1.Validate()
    
        If Not RangeValidator1.IsValid Then
            RangeValidator1.ErrorMessage = "The tour date must " & _
            "fall between the arrival and departure dates."
        End If
    End Sub
    
    private void Button1_Click(object sender, System.EventArgs e)
    {
        RangeValidator1.MinimumValue = txtArrival.Text;
        RangeValidator1.MaximumValue = txtDeparture.Text;
        RangeValidator1.Type = ValidationDataType.Date;
        RangeValidator1.Validate();
    
        if (!RangeValidator1.IsValid)
        {
            RangeValidator1.ErrorMessage = "The tour date must " +
            "fall between the arrival and departure dates.";
        }
    }
    

Consulte também

Conceitos

Tipos de validação para controles de servidor do ASP.NET

Outros recursos

Controles de Validação do ASP.NET