Подтвердить что ты не робот

Проверка asp.net, чтобы убедиться, что текстовое поле имеет целочисленные значения

У меня есть требуемая настройка проверки в текстовом поле, но я должен убедиться, что это тоже целое число.

как я могу это сделать?

4b9b3361

Ответ 1

Если все, что вас беспокоит, состоит в том, что поле содержит целое число (т.е. не связано с диапазоном), добавьте CompareValidator с ним Operator свойство установлено в DataTypeCheck:

<asp:CompareValidator runat="server" Operator="DataTypeCheck" Type="Integer" 
 ControlToValidate="ValueTextBox" ErrorMessage="Value must be a whole number" />

Если существует определенный диапазон значений, которые действительны (возможно, есть), вы можете использовать RangeValidator, например

<asp:RangeValidator runat="server" Type="Integer" 
MinimumValue="0" MaximumValue="400" ControlToValidate="ValueTextBox" 
ErrorMessage="Value must be a whole number between 0 and 400" />

Они будут только проверять, есть ли текст в TextBox, поэтому вам также нужно оставить RequiredFieldValidator.

Как @Mahin, убедитесь, что вы проверяете свойство Page.IsValid на стороне сервера, иначе валидатор работает только для пользователей с включенным JavaScript.

Ответ 2

Это отлично работает для меня:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
     ControlToValidate="YourTextBoxID"
     ErrorMessage="Only numeric allowed." ForeColor="Red"
     ValidationExpression="^[0-9]*$" ValidationGroup="NumericValidate">*
</asp:RegularExpressionValidator>

Я думаю, вы должны добавить ValidationGroup="NumericValidate" в свою кнопку отправки.

Ответ 3

Используйте Int32.TryParse.

 int integer;
 Int32.TryParse(Textbox.Text, out integer)

Он вернет bool, чтобы вы могли увидеть, вошли ли они в действительное целое число.

Ответ 4

Прикрепите средство проверки регулярного выражения к текстовому полю и сделайте его выражение следующим:

^\d+$

И, конечно же, сделайте свою проверку на стороне сервера.

Ответ 5

Есть несколько способов, которыми вы можете справиться. Вы можете добавить RequiredFieldValidator, а также RangeValidator (если это работает для вашего случая), или вы можете добавить CustomFieldValidator.

Ссылка на CustomFieldValidator: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator%28VS.71%29.aspx

Ссылка на статью MSDN по проверке ASP.NET: http://msdn.microsoft.com/en-us/library/aa479045.aspx

Ответ 6

http://msdn.microsoft.com/en-us/library/ad548tzy%28VS.71%29.aspx

При использовании элементов проверки валидатора вы должны быть осторожны в том, что любой может отключить javascript в своем браузере. Поэтому вы должны использовать свойство Page.IsValid всегда на стороне сервера.

Ответ 7

<script language="javascript" type="text/javascript">
        function fixedlength(textboxID, keyEvent, maxlength) {
            //validation for digits upto 'maxlength' defined by caller function
            if (textboxID.value.length > maxlength) {
                textboxID.value = textboxID.value.substr(0, maxlength);
            }
            else if (textboxID.value.length < maxlength || textboxID.value.length == maxlength) {
                textboxID.value = textboxID.value.replace(/[^\d]+/g, '');
                return true;
            }
            else
                return false;
        }
 </script>

<asp:TextBox ID="txtNextVisit" runat="server" MaxLength="2" onblur="return fixedlength(this, event, 2);" onkeypress="return fixedlength(this, event, 2);" onkeyup="return fixedlength(this, event, 2);"></asp:TextBox> 

Ответ 8

Вы можете использовать java script для этого: -

<asp:TextBox ID="textbox1" runat="server" Width="150px" MaxLength="8" onkeypress="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;"></asp:TextBox>

Ответ 9

У Visual Studio теперь есть интегрированная поддержка проверки диапазона и проверки типов: -

Попробуйте следующее: - ДЛЯ ПРОВЕРКИ ДИАПАЗОНА Перед проверкой/проверкой определенного диапазона чисел Перейдите к представлению дизайна из вида разметки. Затем: -

Вид > Панель инструментов > Проверка

Теперь перетащите на RangeValidator на страницу дизайна, где вы хотите показать сообщение об ошибке (если пользователь вводит значение диапазона) теперь нажмите на элемент управления RangeValidator. Щелкните правой кнопкой мыши и выберите свойства. В окне "Свойства" (обычно оно открыто под панелью решений) выберите "СООБЩЕНИЕ ОШИБКИ". Напишите: -

Номер должен находиться в диапазоне.

Теперь выберите в элементе управления, чтобы проверить и выбрать свой TextboxID (или записать его в любом случае) из раскрывающегося списка. Locate Введите в панель свойств сам и выберите вниз Integer.
Чуть выше вы найдете максимальное и минимальное значение. Введите свой желаемый номер.

Для проверки типа (без какого-либо диапазона)
Перед проверкой/проверкой определенного диапазона чисел Перейдите к представлению дизайна из вида разметки. Затем: -

Вид > Панель инструментов > Проверка

Теперь перетащите на CompareValidator на страницу дизайна, где вы хотите показать сообщение об ошибке (если пользователь вводит в него некоторый текст). теперь нажмите на элемент управления CompareValidator. Щелкните правой кнопкой мыши и выберите свойства. В окне "Свойства" (обычно оно открыто под панелью решений) выберите "СООБЩЕНИЕ ОШИБКИ". Напишите: -

Значение должно быть числом.

Теперь найдите опцию ControltoValidate и напишите в ней имя controlID (в качестве альтернативы вы также можете выбрать из раскрывающегося списка). Установите опцию Operator и напишите DataTypeCheck (в качестве альтернативы, вы также можете выбрать из раскрывающегося списка) в нем. Найдите опцию Type и напишите Integer в нем.

Сидите.

Альтернативно вы можете написать следующий код на странице aspx:  <% - для проверки без какого-либо диапазона -% >

Ответ 10

Дважды нажмите кнопку и используйте следующий код: -

protected void button_click(object sender,EventArgs e)
{
 int parsedValue;
 if(int.TryParse(!txt.Text,out parsedValue))
 {
 Label.Text = "Please specify a number only !!"; //Will put a text in a label so make     
    //sure                
  //you have a label
 }
 else
  {
    // do what you want to  
  }