ASP.NET RangeValidator non può fare nemmeno la matematica di base?
-
23-10-2019 - |
Domanda
Sto avendo un problema con i miei controlli ASP.NET RangeValidator.
voglio permettere agli utenti di immettere un importo dello sconto, e tale importo deve essere negativo (<$ 0.00). Voglio verificare che l'importo iscritto in una casella di testo è un valore negativo, quindi ho questo nella mia pagina markup:
<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" />
e mi tenta di impostare la MinimumValue dinamicamente nel mio codice prima che la pagina venga eseguito il rendering - l'equivalente negativo del mio prezzo dell'articolo. Quindi, se l'articolo è $ 69, voglio impostare il valore minimo a - $ 69:
rvDiscount.MinimumValue = (-1.0m * Price).ToString();
Il problema è: continuo a ricevere questo messaggio di errore:
Il valore massimo 0.0 non può essere minore al valore minimo per -69,00 rvDiscount
WTF?!?! ??! Da dove vengo io, -69 $ a meno di $ 0 ...... Allora qual è il problema?
E ancora più importante: qual è il soluzione per il problema ??
Soluzione
Non sta cercando di fare la matematica, che sta facendo un confronto tra stringhe, perché non l'hai detto altrimenti. Prova ad aggiungere questo attributo:
Type="Double"