ASP.NET RANGELVALIDATOR kann nicht einmal die grundlegendste Mathematik ausführen?
-
23-10-2019 - |
Frage
Ich habe ein Problem mit meinen ASP.NET -RangeValidator -Steuerelementen.
Ich möchte den Benutzern erlauben, einen Rabattbetrag einzugeben, und dieser Betrag muss negativ sein (<$ 0,00). Ich möchte überprüfen, ob der in einem Textfeld eingegebene Betrag ein negativer Wert ist. Daher habe ich dies in meinem Seitenmarkup:
<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" />
Und ich versuche, das Minimumwert dynamisch in meinem Code festzulegen, bevor die Seite auf das negative Äquivalent meines Artikelpreises gerendert wird. Wenn der Artikel 69 US -Dollar beträgt, möchte ich den Mindestwert auf - 69 US -Dollar festlegen:
rvDiscount.MinimumValue = (-1.0m * Price).ToString();
Das Problem ist: Ich erhalte diese Fehlermeldung immer wieder:
Der Maximalwert 0,0 kann für rvdiscount nicht geringer sein als der Mindestwert -69,00
Wtf?!?! ??! Woher ich komme, -69 $ IST Weniger als 0 $ ...... Also, was ist das Problem?
Und was noch wichtiger ist: Was ist das Lösung zu dem Problem ??
Lösung
Es versucht nicht, Mathe zu machen, sondern einen String -Vergleich durchzuführen, weil Sie es sonst nicht gesagt haben. Fügen Sie dieses Attribut hinzu:
Type="Double"