Question

J'essaie de spécifier une plage de 4 à 13.Mais il conserve l’erreur « La valeur maximale 13 ne peut pas être inférieure à la valeur minimale 4 de RangeValidator1 ». Comment puis-je résoudre ce problème.Voici mon code :


     <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>

Voici le code dans Button :


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

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

        }
    }

Toute aide appréciée.

Était-ce utile?

La solution

RangeValidator valide la valeur du contrôle et non la longueur de la valeur.Pour la comparaison des chaînes "13" est inférieure à "4", vous obtenez donc l'erreur "max

Vous devez utiliser RegularexpressionValidator pour vérifier la longueur d'entrée:

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

Autres conseils

Définir le type Integer lorsque vous utilisez RangeValidator pour des valeurs de type entier.

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

Mais je suis surpris que vous utilisiez RangeValidator avec le champ Mot de passe.Dans ce cas, vous limitez l'utilisateur à mettre une valeur entre 4-13.Vous souhaitez probablement vérifier la longueur de l'entrée.Pour cela, vous utilisez le validateur d'expression régulière.

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

Le type de données spécifié que vous allez vérifier, est actuellement défini sur la chaîne."4" est supérieur à "13", c'est pourquoi vous obtenez une telle erreur.Changez l'argument de type dans le contrôle en entiers et cela devrait fonctionner.

Le type doit être entier plutôt que de la chaîne

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

Google a traduit le message d'erreur ci-dessous. Le mot de passe doit être composé de 4 à 13 caractères.

Phapash 'Réponse https://stackoverflow.com/a/21060857/263003 est la bonne

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top