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 ??

È stato utile?

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"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top