2010-06-03 7 views
6

Je rencontre un problème avec mes contrôles ASP.NET RangeValidator.ASP.NET RangeValidator ne peut pas faire même les mathématiques les plus basiques?

Je souhaite autoriser les utilisateurs à entrer un montant de remise, 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 je dois 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 du prix de mon 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 pas être moins que la valeur minimale -69,00 pour rvDiscount

WTF?!?! ??! D'où je viens, -69 $ EST moins de 0 $ ...... alors quel est le problème?

Et plus important encore: quelle est la solution au problème ??

Répondre

19

Cela n'essaie pas de faire des maths, c'est de faire une comparaison de chaînes parce que vous ne l'avez pas dit autrement. Essayez d'ajouter cet attribut:

Type="Double" 
+0

+1 vous l'avez cloué - j'aimerais pouvoir +100! :-) Je savais que je ne voyais pas la forêt pour les arbres en quelque sorte ...... Merci! –

+0

Vous pourriez toujours le généraliser. ;) Probablement abus du système cependant. Heureux d'aider. –

+1

Ca vaut le coup de marquer au moins ...;) –