У меня есть довольно простая страница ASP.NET с некоторыми полями ввода и валидаторами.Одно поле, принимающее двойное, выглядит следующим образом:
<asp:TextBox ID="tbHeight" runat="server" />
<asp:RangeValidator ID="vdHeight" runat="server"
ErrorMessage="Height must be a positive number" Text="*"
ControlToValidate="tbHeight" MinimumValue="0" Type="Double" />
Это работает, как и ожидалось, и пользователь должен ввести число> = 0.
Обновление: это делаетне работает, как ожидалось, в конце концов (какая-то странная ошибка в проекте).Подробности см. В комментариях к ответам ниже.
Затем я пытаюсь сделать то же самое для поля, принимающего целое число:
<asp:TextBox ID="tbGrossTonnage" runat="server" />
<asp:RangeValidator ID="vdGrossTonnage" runat="server"
ErrorMessage="Gross Tonnage must be a positive whole number" Text="*"
ControlToValidate="tbGrossTonnage" MinimumValue="0" Type="Integer" />
При загрузке ASP-страницы это дает мне следующееошибка: Значение '' свойства MaximumValue 'vdGrossTonnage' не может быть преобразовано в тип 'Integer'.
У меня нет особых требований к максимальному значению в системе, поэтомуЯ просто хотел бы, чтобы он «по умолчанию» набрал Int32.MaxValue
(хотя мне пришлось бы ввести 2 147 483 647, поскольку MaximumValue
, похоже, не принимает константу Int32.MaxValue
).
Почему RangeValidator
типа Integer
не примет отсутствующее свойство MaximumValue
, но для одного из типов Double
это нормально?