7

I'm having an issue with my ASP.NET RangeValidator controls.

I want to allow users to enter a discount amount, and this amount must be negative (< $0.00). I want to verify that the amount entered in a textbox is a negative value, so I have this in my page 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" /> 

and I attempt to set the MinimumValue dynamically in my code before the page gets rendered - to the negative equivalent of my item price. So if the item is $69, I want to set the minimum value to - $69:

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

Trouble is: I keep getting this error message:

The maximum value 0.0 cannot be less than the minimum value -69.00 for rvDiscount

WTF?!?!??! Where I come from, -69 $ IS less than $0 ...... so what's the problem?

And more importantly: what is the solution to the problem??

1 Answer 1

21

It's not trying to do maths, it's doing a string comparison because you haven't told it otherwise. Try adding this attribute:

Type="Double" 
Sign up to request clarification or add additional context in comments.

5 Comments

+1 you nailed it - wish I could +100 ! :-) I knew I wasn't seeing the forest for the trees somehow...... Thanks!
You could always bounty it. ;) Probably abuse of the system though. Happy to help.
Must be worth a tick at least... ;)
sure - when I tried to apply it first, I was still in the 10 minute "cannot accept" phase..... but you definitely earned it!
And before anyone else starts banging his head against the wall, make sure you're looking at the correct template (InsertItemTemplate/EditItemTemplate) if you're using it in a FormView. I was pulling my hair out since setting the Type property was not working for me, only because I was fixing it in one template and testing the other. :)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.