У меня есть требуемая настройка проверки в текстовом поле, но я должен убедиться, что это тоже целое число.
как я могу это сделать?
У меня есть требуемая настройка проверки в текстовом поле, но я должен убедиться, что это тоже целое число.
как я могу это сделать?
Если все, что вас беспокоит, состоит в том, что поле содержит целое число (т.е. не связано с диапазоном), добавьте 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.
Это отлично работает для меня:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="YourTextBoxID"
ErrorMessage="Only numeric allowed." ForeColor="Red"
ValidationExpression="^[0-9]*$" ValidationGroup="NumericValidate">*
</asp:RegularExpressionValidator>
Я думаю, вы должны добавить ValidationGroup="NumericValidate"
в свою кнопку отправки.
Используйте Int32.TryParse.
int integer;
Int32.TryParse(Textbox.Text, out integer)
Он вернет bool, чтобы вы могли увидеть, вошли ли они в действительное целое число.
Прикрепите средство проверки регулярного выражения к текстовому полю и сделайте его выражение следующим:
^\d+$
И, конечно же, сделайте свою проверку на стороне сервера.
Есть несколько способов, которыми вы можете справиться. Вы можете добавить 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
http://msdn.microsoft.com/en-us/library/ad548tzy%28VS.71%29.aspx
При использовании элементов проверки валидатора вы должны быть осторожны в том, что любой может отключить javascript в своем браузере. Поэтому вы должны использовать свойство Page.IsValid всегда на стороне сервера.
<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>
Вы можете использовать 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>
У Visual Studio теперь есть интегрированная поддержка проверки диапазона и проверки типов: -
Попробуйте следующее: - ДЛЯ ПРОВЕРКИ ДИАПАЗОНА Перед проверкой/проверкой определенного диапазона чисел Перейдите к представлению дизайна из вида разметки. Затем: -
Вид > Панель инструментов > Проверка
Теперь перетащите на RangeValidator на страницу дизайна, где вы хотите показать сообщение об ошибке (если пользователь вводит значение диапазона) теперь нажмите на элемент управления RangeValidator. Щелкните правой кнопкой мыши и выберите свойства. В окне "Свойства" (обычно оно открыто под панелью решений) выберите "СООБЩЕНИЕ ОШИБКИ". Напишите: -
Номер должен находиться в диапазоне.
Теперь выберите в элементе управления, чтобы проверить и выбрать свой TextboxID (или записать его в любом случае) из раскрывающегося списка. Locate Введите в панель свойств сам и выберите вниз Integer.
Чуть выше вы найдете максимальное и минимальное значение. Введите свой желаемый номер.
Для проверки типа (без какого-либо диапазона)
Перед проверкой/проверкой определенного диапазона чисел Перейдите к представлению дизайна из вида разметки. Затем: -
Вид > Панель инструментов > Проверка
Теперь перетащите на CompareValidator на страницу дизайна, где вы хотите показать сообщение об ошибке (если пользователь вводит в него некоторый текст). теперь нажмите на элемент управления CompareValidator. Щелкните правой кнопкой мыши и выберите свойства. В окне "Свойства" (обычно оно открыто под панелью решений) выберите "СООБЩЕНИЕ ОШИБКИ". Напишите: -
Значение должно быть числом.
Теперь найдите опцию ControltoValidate и напишите в ней имя controlID (в качестве альтернативы вы также можете выбрать из раскрывающегося списка). Установите опцию Operator и напишите DataTypeCheck (в качестве альтернативы, вы также можете выбрать из раскрывающегося списка) в нем. Найдите опцию Type и напишите Integer в нем.
Сидите.
Альтернативно вы можете написать следующий код на странице aspx: <% - для проверки без какого-либо диапазона -% >
Дважды нажмите кнопку и используйте следующий код: -
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
}