Ошибка при указании диапазона для RangeValidator
-
26-12-2019 - |
Вопрос
Я пытаюсь указать диапазон от 4 до 13. Но оно сохраняет ошибку «MaximumValue 13 не может быть меньше, чем минимума MinmingValue 4 AndValidator1».Как я могу решить это.Вот мой код:
<asp:TextBox ID="TextBox2" runat="server" ValidationGroup="Group1"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ControlToValidate="TextBox2" ErrorMessage="กรุณากรอก Password" ForeColor="Red"
ValidationGroup="Group1">*</asp:RequiredFieldValidator>
<asp:RangeValidator ID="RangeValidator1" runat="server"
ControlToValidate="TextBox2"
ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red"
MaximumValue="13" MinimumValue="4" Type="String" EnableClientScript="false">*</asp:RangeValidator>
.
Это код в кнопке:
protected void Button2_Click1(object sender, EventArgs e)
{
try
{
if (Page.IsValid)
{
}
else
{
Insert();
}
}
catch (Exception ex)
{
}
}
.
Любая помощь оценила.
Решение
RangeValidator подтверждает значение управления, а не длина значения.Для сравнения строки «13» меньше, чем «4», поэтому вы получаете ошибку «MAX
Вы должны использовать RegularexpressionValidator, чтобы проверить длину ввода:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="TextBox2"
ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red"
ValidationExpression="^.{4,13}$" ValidationGroup="Group1" EnableClientScript="false">*</asp:RegularExpressionValidator>
. Другие советы
Установите тип Integer
, когда вы используете And AndValidator для целочисленных значений типа.
<asp:RangeValidator ID="RangeValidator1" runat="server"
ControlToValidate="TextBox2"
ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red"
MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*</asp:RangeValidator>
.
Но я удивлен, что вы используете And AndValidator с паролем поля.В этом случае вы ограничиваете пользователей, чтобы поставить значение между 4-13
.
Вы, вероятно, хотят проверить длину ввода.Для этого вы используете вариатор регулярного выражения.
<asp:RegularExpressionValidator ID="RegexVal" ValidationExpression="^.{4,13}$" runat="server" ErrorMessage="Password must be 4-13 character long" ControlToValidate="TextBox2" />
. Указанный тип данных, который вы собираетесь проверить, в настоящее время установлено значение String.«4» больше, чем «13», поэтому вы получите такую ошибку.Измените аргумент типа в элементе управления целым числом, и он должен работать.
Тип должен быть целым числом, а не строкой
<asp:RangeValidator ID="RangeValidator1" runat="server"
ControlToValidate="TextBox2"
ErrorMessage="Password ต้องมีความยาวตั้งแต่ 4-13 ตัวอักษร" ForeColor="Red"
MaximumValue="13" MinimumValue="4" Type="Integer" EnableClientScript="false">*
</asp:RangeValidator>
.
Google перевел сообщение об ошибке ниже. Пароль должен состоять из 4-13 символов.
Pashapash 'Ответ https://stackoverflow.com/a/21060857/263003 - это правильный