ASP.NET RangeValidator ne peut pas même les mathématiques les plus élémentaires?
-
23-10-2019 - |
Question
Je vais avoir un problème avec mes contrôles ASP.NET RangeValidator.
Je veux permettre aux utilisateurs d'entrer un montant d'escompte, et ce montant doit être négatif (<0,00 $). Je veux vérifier que le montant inscrit dans une zone de texte est une valeur négative, donc j'ai dans mon balisage de la page:
<asp:TextBox ID="tbxDiscount" runat="server" />
<asp:RangeValidator ID="rvDiscount" runat="server" ControlToValidate="tbxDiscount"
MinimumValue="0.0" MaximumValue="0.0" EnableClientScript="true"
ErrorMessage="Please enter a negative value for a discount" />
et je tente de régler le MinimumValue dynamiquement dans mon code avant que la page se rend - à l'équivalent négatif de mon prix de l'article. Donc, si l'élément est de 69 $, je veux définir la valeur minimum à - 69 $:
rvDiscount.MinimumValue = (-1.0m * Price).ToString();
Le problème est: Je continue à recevoir ce message d'erreur:
La valeur maximale 0.0 ne peut être inférieure que la valeur minimale -69,00 pour rvDiscount
WTF?!?! ??! D'où je viens, -69 $ IS moins de $ 0 ...... Quel est donc le problème?
Et plus important encore: quelle est la solution au problème ??
La solution
Il ne cherche pas à faire des mathématiques, il est fait une comparaison de chaîne parce que vous ne l'avez pas dit autrement. Essayez d'ajouter cet attribut:
Type="Double"