ASP.NET RangeValidator не может сделать даже самую основную математику? - PullRequest
6 голосов
/ 03 июня 2010

У меня проблема с элементами управления ASP.NET RangeValidator.

Я хочу разрешить пользователям вводить сумму скидки, и эта сумма должна быть отрицательной (<0,00 долл. США). Я хочу убедиться, что сумма, введенная в текстовое поле, является отрицательным значением, поэтому у меня есть это в моей разметке страницы: </p>

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

и я пытаюсь динамически установить MinimumValue в моем коде до отображения страницы - в отрицательный эквивалент цены моего элемента. Поэтому, если стоимость товара составляет 69 долларов, я хочу установить минимальное значение - 69 долларов:

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

Проблема в том, что я получаю сообщение об ошибке:

Максимальное значение 0.0 не может быть меньше чем минимальное значение -69,00 для rvDiscount

WTF?!?! ??! Откуда я, -69 $ IS меньше, чем $ 0 ...... так в чем проблема?

И что еще более важно: каково решение проблемы ??

1 Ответ

20 голосов
/ 03 июня 2010

Он не пытается делать математику, он выполняет сравнение строк, потому что вы не сказали этого иначе. Попробуйте добавить этот атрибут:

Type="Double"
...