Pergunta

Tento especificar o intervalo de 4 a 13.Mas mantém o erro "O MaximumValue 13 não pode ser menor que o mínimo 4 do RangeValidator1". Como posso resolver isso.Aqui está meu código:


     <asp:TextBox ID="TextBox2" runat="server" ValidationGroup="Group1"></asp:TextBox>
     <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                ControlToValidate="TextBox2" ErrorMessage="กรุณากรอก Password" ForeColor="Red" 
                ValidationGroup="Group1">*</asp:RequiredFieldValidator>
     <asp:RangeValidator ID="RangeValidator1" runat="server"
                ControlToValidate="TextBox2" 
                ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
                MaximumValue="13" MinimumValue="4" Type="String" EnableClientScript="false">*</asp:RangeValidator>

Este é o código no botão:


    protected void Button2_Click1(object sender, EventArgs e)
    {
        try
        {
            if (Page.IsValid)
            {

            }
            else
            {
                Insert();
            }
        }
        catch (Exception ex)
        {

        }
    }

Qualquer ajuda será apreciada.

Foi útil?

Solução

RangeValidator valida o valor do controle, não o comprimento do valor.Para comparação de strings, "13" é menor que "4", então você está recebendo o erro "max < min".

Você deve usar RegularExpressionValidator para verificar o comprimento da entrada:

 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
            ControlToValidate="TextBox2" 
            ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
            ValidationExpression="^.{4,13}$" ValidationGroup="Group1" EnableClientScript="false">*</asp:RegularExpressionValidator>

Outras dicas

Defina o tipo Integer quando você estiver usando RangeValidator para valores de tipo inteiro.

<asp:RangeValidator ID="RangeValidator1" runat="server"
                ControlToValidate="TextBox2" 
                ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
                MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*</asp:RangeValidator>

Mas estou surpreso que você esteja usando o campo RangeValidator com senha.Neste caso você está restringindo o usuário a colocar valor entre 4-13.Você provavelmente deseja verificar o comprimento da entrada.Para isso você usa o validador de Expressão Regular.

<asp:RegularExpressionValidator ID="RegexVal" ValidationExpression="^.{4,13}$"  runat="server" ErrorMessage="Password must be 4-13 character long" ControlToValidate="TextBox2"  />

O tipo de dados especificado que você irá verificar atualmente está definido como string."4" é maior que "13", é por isso que você recebe esse erro.Altere o argumento Type no controle para Integer e deve funcionar.

O tipo deve ser Integer em vez de String

<asp:RangeValidator ID="RangeValidator1" runat="server"
            ControlToValidate="TextBox2" 
            ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red" 
            MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*
</asp:RangeValidator>

O Google traduziu a mensagem de erro abaixo.A senha deve consistir de 4 a 13 caracteres.

Resposta de PashaPash https://stackoverflow.com/a/21060857/263003 é o correto

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top