2010-06-03 12 views
6

Tengo un problema con mis controles ASP.NET RangeValidator.ASP.NET RangeValidator no puede hacer ni siquiera las matemáticas más básicas?

Quiero permitir que los usuarios ingresen una cantidad de descuento, y esta cantidad debe ser negativa (< $ 0.00). Quiero verificar que el importe consignado en un cuadro de texto es un valor negativo, por lo que tengo esto en mi página de marcado:

<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" /> 

y tratar de establecer el MinimumValue dinámicamente en mi código antes de que la página se rindió - a el equivalente negativo de mi precio del artículo. Así que si el artículo es $ 69, quiero establecer el valor mínimo a - $ 69:

rvDiscount.MinimumValue = (-1.0m * Price).ToString(); 

El problema es: Sigo recibiendo este mensaje de error:

El valor máximo 0.0 no puede ser inferior de el valor mínimo para -69.00 rvDiscount

WTF?!?! ??! De donde vengo, -69 $ IS menos de $ 0 ... ¿cuál es el problema?

Y más importante: ¿cuál es la solución al problema ??

Respuesta

19

No está tratando de hacer matemáticas, está haciendo una comparación de cadenas porque no le ha dicho lo contrario. Intente agregar este atributo:

Type="Double" 
+0

+1 lo has clavado - desearía poder +100! :-) Sabía que no estaba viendo el bosque por los árboles de alguna manera ... ¡Gracias! –

+0

Siempre puedes recompensarlo. ;) Probablemente abuso del sistema sin embargo. Feliz de ayudar. –

+1

Debe valer un tic al menos ...;) –

Cuestiones relacionadas