Перечисления 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.
Возможно, вы можете использовать RangeValidator, прикрепленный к этому текстовому полю, задав для Type значение Integer или что-то еще.
Вы должны использовать 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 , поскольку некоторые валидаторы разрешают пустые записи.
Другой возможностью является использование RegexpValidator и добавление регулярного выражения, которое проверяет наличие в нем 1 или более цифр, например:
RegularExpressionValidator regexpvalidator = new RegularExpressionValidator();
regexpvalidator.ID = "RegularExpressionValidator1";
regexpvalidator.ValidationExpression = "\d+";
regexpvalidator.ControlToValidate = "YourControl";
regexpvalidator.ErrorMessage = "Please specify a digit";
regexpvalidator.SetFocusOnError = true;
Нет, RequiredFieldValidator может только проверять, что поле содержит что-то.
Если вы хотите проверить, что поле содержит только цифры, вы можете использовать RegularExpressionValidator с шаблоном " \ d + "
.
RequiredFieldValidator проверяет только, заполнено ли поле. Неважно, что с чем.
Вам понадобится дополнительный CompareValidator с его оператором, установленным на DataTypeCheck, а его типом - с целым числом. . Обратите внимание, что вам нужны оба: CompareValidator проигнорирует пустой ввод.
Да, вот так:
<asp:TextBox ID="tb" runat="server"></asp:TextBox>
<asp:RangeValidator ControlToValidate="tb" Type="Integer"></asp:RangeValidator>