Une erreur lors de la spécification de la plage pour RangeValidator
-
26-12-2019 - |
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.
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