ASP.NET RANGEVALIDATOR не может сделать даже самую основную математику?

StackOverflow https://stackoverflow.com/questions/2965476

Вопрос

У меня есть проблема с моими элементами управления диапазоном asp.net.

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

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

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

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

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

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

Wtf?!?! ??! Откуда я приехал, -69 $ ЯВЛЯЕТСЯ Менее $ 0 ...... так в чем проблема?

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

Это было полезно?

Решение

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

Type="Double"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top