ASP.NET RANGEVALIDATOR не может сделать даже самую основную математику?
-
23-10-2019 - |
Вопрос
У меня есть проблема с моими элементами управления диапазоном 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"