Por padrão, os controles de validação do ASP.NET executam automaticamente a validação quando a página é postada de volta no servidor, depois que a página é inicializada (ou seja, depois que o estado de exibição e os dados de postback são processados) e antes que o código de manipulação de eventos seja chamado. Se o navegador oferecer suporte a scripts do lado do cliente, o controle também poderá executar a validação no navegador.
No entanto, às vezes pode ser necessário executar a validação programaticamente. Talvez seja necessário verificar programaticamente nas seguintes situações:
·Se o valor de validação não foi definido em tempo de execução. Por exemplo, se você estiver usando um controle RangeValidator, talvez você queira definir suas propriedades MínimoValue e MáximoValue em tempo de execução com base no valor inserido pelo usuário. A validação padrão não funciona neste momento porque não há informações suficientes no controle RangeValidator quando a página chama o controle de validação para executar a validação.
·É necessário determinar a validade do controle (ou da página inteira) no manipulador de eventos Page_Load. Durante a fase de processamento da página, o controle de validação ainda não foi chamado, portanto a propriedade IsValid da página ou dos controles individuais não foi definida. (Se você tentar obter o valor desta propriedade, uma exceção será lançada.) Mas se quiser determinar a validade, você pode chamar a validação programaticamente.
·Você está editando um controle (um controle de entrada ou um controle de validação) em tempo de execução.
Mais comumente, você pode verificar programaticamente a qualquer momento, proporcionando um controle mais preciso sobre quando a verificação é realizada.
Chame o método Validate do controle de validação.
O controle executa verificações e define a propriedade IsValid do controle e da página. Se um erro for detectado, a mensagem de erro será exibida normalmente quando a página for devolvida ao usuário.
O exemplo de código a seguir demonstra como definir propriedades programaticamente. Nesse caso, uma página da web ASP.NET reserva um quarto em um resort, oferecendo viagens gratuitas de e para cada visita. Os usuários devem inserir as datas de chegada e saída e depois planejar sua programação durante a visita. O controle RangeValidator é usado para garantir que o usuário insira um formato de data típico e que a data da viagem esteja entre as datas de chegada e partida.
Descrição: O controle validador lança uma exceção se o valor inserido pelo usuário não puder ser convertido em uma data. Para maior clareza, este exemplo não inclui tratamento de erros.
As datas de chegada e partida vêm de dois controles de servidor Web TextBox na página, txtArrival e txtDeparture. A data da viagem é inserida no terceiro controle TextBox, txtTourDate, que é validado pelo controle RangeValidator.
Nota: Ao validar programaticamente, o script do lado do cliente deve ser desabilitado para que o controle não exiba mensagens de erro incorretas antes que o código de validação do lado do servidor seja executado.
private void Button1_Click (remetente do objeto, System.EventArgs e)
{
RangeValidator1.MinimumValue = txtArrival.Text;
RangeValidator1.MaximumValue = txtDeparture.Text;
RangeValidator1.Type = ValidationDataType.Date;
RangeValidator1.Validate();
se (!RangeValidator1.IsValid)
{
RangeValidator1.ErrorMessage = "A data do passeio deve " +
"cai entre as datas de chegada e partida.";
}
}
Este artigo vem do blog CSDN. Indique a fonte ao reimprimir:
http://blog.csdn.net/dodream/archive/2009/12/17/5024666.aspx