Ir para conteúdo
Fórum Script Brasil
  • 0

CompareValidator validando de forma incorreta com datas especificas. A


Panarello

Pergunta

Estou enfrentando o seguinte problema na validacao de um textbox , aonde a data informada não pode ser maior ou igual a atual. Em 99% dos casos o validador funciona corretamente , mas em algumas datas bem especificas ele não funciona, no caso ate agora encontrei as seguintes datas

10/10/1937

10/10/1948

09//10/1977

13/10/1985

O codigo da minha pagina e o seguinte :

<form runat="server" id="form1">
    <asp:CompareValidator ID="covDataNascimento" runat="server" ControlToValidate="txtDataNascimento"
        ErrorMessage="A data de nascimento não pode ser maior que a data atual." Operator="LessThanEqual"
        Type="Date" ValidationGroup="grupoSalvar" style="z-index: 100; left: 12px; position: absolute; top: 73px" Display="Dynamic"></asp:CompareValidator><asp:RequiredFieldValidator ID="rfvDataNascimento" runat="server" ControlToValidate="txtDataNascimento"
        ErrorMessage="Informe a data de nascimento." ValidationGroup="grupoSalvar" Visible="True" style="z-index: 101; left: 13px; position: absolute; top: 99px" Display="Dynamic"></asp:RequiredFieldValidator><br />
    <asp:RegularExpressionValidator ID="revDataNascimento" runat="server" ControlToValidate="txtDataNascimento"
        ErrorMessage="Data de nascimento inválida." ValidationExpression="(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9][0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9][13579][26])))"
        Visible="True" style="z-index: 102; left: 12px; position: absolute; top: 127px" Display="Dynamic"></asp:RegularExpressionValidator>&nbsp;
        <asp:Button id="Button1" Text="Validate" runat="server" ValidationGroup="grupoSalvar" style="z-index: 104; left: 11px; position: absolute; top: 39px" />
        <asp:TextBox ID="txtDataNascimento" runat="server" AutoPostBack="True" Style="width: 80px; z-index: 105; left: 123px; position: absolute; top: 8px;" Text="" Width="50px"></asp:TextBox>
    <asp:Label ID="Label1" runat="server" Style="z-index: 107; left: 11px; position: absolute;
        top: 11px" Text="Data Nascimento:"></asp:Label>
</form>
do lado do servidor:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    covDataNascimento.ValueToCompare = DateTime.Now.ToShortDateString
End Sub

já configurei meu webconfig para o pt-br.

alguém tem alguma ideia do que possa estar acontecendo?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

então deve ser algum tipo de configuracao porque aqui na minha maquina esta ocorrendo o erro somente nas datas que especifiquei, fiz suas modificacoes e não fez nenhuma diferenca. já encontrei outra solucao vou alterar o comparevalidator por um customvalidator chamando uma funcao em javascript que faca a comparacao das datas...

Mesmo assim queria entender o porque desse problema ...

Kadosh qual versao do .NET você esta usando ? instalou algum framework?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Murillo Braga

Olá

Estou com o mesmo problema ou parecido. Utilizo o RangeValidator setando o valor máximo e mínimo para campo TextBox do tipo date. Ele recusa as datas citadas por nosso amigo Panarello.

Trabalho num sistema com outros desenvolvedores. Testei em outras duas máquinas com as mesmas configurações / S.O e não consegui simular o tal problema.

Chequei a versão de framework de minha máquina e possuo apenas a 2.0 instalada. Na dos outros desenvolvedores, existe a 1.1 e a 2.0. Seria uma pista?

De fato, não cheguei a conclusão alguma. :angry:

Pretendo resolver o problema de forma que eu não tenha que utilizar outra implementação para validar as datas, visto que trabalhamos com componentes que são utilizados em diversos sistemas e talvez isso pudesse gerar um grande esforço na solução.

Caso encontrem novidades, por gentileza peço que me retornem.

Grato

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Tudo bem com vocês.

Então, estava tendo esse mesmo problema com o componente RangeValidator. Uso o Visual Studio 2008, com SP1.

Tudo estava funcionando direito, mas quando incluía no formulário a data "10/10/2010", ele não aceitava como data válida.

Já não sabia mais o que fazer, quando descobri esse tópico. Desabilitei a opção 'Ajustar automaticamente o relógio para Horário de Verão' e não é que deu certo!

O formulário passou a aceitar a data. Obrigado pela dica Murilo.

Mas alguém sabe o porque dessa solução?

Abraços a todos, Alexandre

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...