Проверка числа в блоке проверки допустимости обязательного поля

Перечисления Java позволяют легкие безопасные с точки зрения типов преобразования из имени с помощью сгенерированного компилятором valueOf метода, т.е.

// Java Enum has generics smarts and allows this
Planet p = Planet.valueOf("MERCURY");

, эквивалент для необработанного перечисления в C# является более подробным:

// C# enum - bit of hoop jumping required
Planet p = (Planet)Enum.Parse(typeof(Planet), "MERCURY");

Однако при потере работоспособности по маршруту, предложенному Кентом можно легко реализовать ValueOf метод в классе Enum.

18
задан Liam 20 January 2015 в 17:11
поделиться

6 ответов

Возможно, вы можете использовать RangeValidator, прикрепленный к этому текстовому полю, задав для Type значение Integer или что-то еще.

Класс RangeValidator в MSDN

4
ответ дан 30 November 2019 в 05:39
поделиться

Вы должны использовать CompareValidator , например:

<asp:TextBox ID="txt" runat="server />
<asp:CompareValidator ID="cv" runat="server" ControlToValidate="txt" Type="Integer"
   Operator="DataTypeCheck" ErrorMessage="Value must be an integer!" />

Это наиболее естественный выбор, если вам нужна простая проверка типа данных. В противном случае, если вы хотите проверить диапазон, используйте предложения RangeValidator . Если вам нужен определенный шаблон, используйте RegularExpressionValidator .

Обратите внимание, что вы также захотите добавить RequiredFieldValidator , поскольку некоторые валидаторы разрешают пустые записи.

71
ответ дан 30 November 2019 в 05:39
поделиться

Другой возможностью является использование RegexpValidator и добавление регулярного выражения, которое проверяет наличие в нем 1 или более цифр, например:

RegularExpressionValidator regexpvalidator = new RegularExpressionValidator(); 
regexpvalidator.ID = "RegularExpressionValidator1"; 
regexpvalidator.ValidationExpression = "\d+"; 
regexpvalidator.ControlToValidate = "YourControl"; 
regexpvalidator.ErrorMessage = "Please specify a digit"; 
regexpvalidator.SetFocusOnError = true; 
2
ответ дан 30 November 2019 в 05:39
поделиться

Нет, RequiredFieldValidator может только проверять, что поле содержит что-то.

Если вы хотите проверить, что поле содержит только цифры, вы можете использовать RegularExpressionValidator с шаблоном " \ d + ".

2
ответ дан 30 November 2019 в 05:39
поделиться

RequiredFieldValidator проверяет только, заполнено ли поле. Неважно, что с чем.

Вам понадобится дополнительный CompareValidator с его оператором, установленным на DataTypeCheck, а его типом - с целым числом. . Обратите внимание, что вам нужны оба: CompareValidator проигнорирует пустой ввод.

2
ответ дан 30 November 2019 в 05:39
поделиться

Да, вот так:

<asp:TextBox ID="tb" runat="server"></asp:TextBox>
<asp:RangeValidator ControlToValidate="tb" Type="Integer"></asp:RangeValidator>
1
ответ дан 30 November 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: