Средства управления проверкой ASP.NET проверяют введенные пользователем данные, чтобы гарантировать, что бесполезные, несанкционированные и противоречивые данные не могут быть сохранены.
ASP.NET предоставляет следующие аспекты контроля проверки:
Обязательное поле валидатор
RangeValidator
СравнитьВалидатор
Валидатор регулярных выражений (RegularExpressionValidator)
Пользовательский валидатор (CustomValidator)
Управление сводкой проверки (ValidationSummary)
Классы проверки наследуются от класса BaseValidator, поэтому они наследуют его свойства и методы. Поэтому изучение свойств и методов этого базового класса, который лежит в основе всех средств контроля эффективности, окажет большую помощь в последующем обучении:
компоненты | описывать |
---|---|
ControlToValidate | Получает или задает элемент управления вводом, который необходимо проверить. |
Отображать | Опишите, как отображаются сообщения об ошибках. |
Включитьклиентскрипт | Указывает, принял ли клиент проверку. |
Включено | Включите или отключите валидатор. |
Сообщение об ошибке | Строка, описывающая ошибку. |
Текст | Текст, который будет отображаться в случае неудачной проверки. |
Действителен | Указывает, является ли контрольное значение допустимым. |
Сетфокусонеррор | Устанавливать ли фокус на соответствующий элемент управления вводом в случае сбоя проверки. |
Группа проверки | Получает или задает имя группы проверки, к которой принадлежит этот элемент управления проверки. |
Подтвердить | Выполняет проверку связанного элемента управления вводом и обновляет свойство IsValid. |
Элемент управления RequiredFieldValidator гарантирует, что обязательные поля не будут пустыми. В основном он привязан к текстовому полю, чтобы позволить пользователю вводить данные в текстовое поле.
Синтаксис этого элемента управления следующий:
<asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Please choose a candidate" InitialValue="Please choose a candidate"></asp:RequiredFieldValidator>
Элемент управления RangeValidator отвечает за проверку того, находится ли введенное значение в заданном диапазоне.
Он имеет три специфических свойства:
свойство | описывать |
---|---|
Тип | Он определяет тип данных. Доступные типы данных: денежная единица, дата, двойная, целая и строковая. |
Минимальное значение | Он определяет минимальное значение в диапазоне |
Максимальное значение | Он определяет максимальное значение в диапазоне |
Синтаксис этого элемента управления следующий:
<asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Enter your class (6 - 12)" MaximumValue="12" MinimumValue="6" Type="Integer"></asp:RangeValidator>
Элемент управления CompareValidator проверяет значение на основе значения, введенного в другой элемент управления вводом, постоянного числового значения или правильного типа данных.
Он обладает следующими специфическими свойствами:
свойство | описывать |
---|---|
Тип | Он определяет тип данных. |
КонтрольToСравнить | Он указывает значение в элементе управления вводом, которое необходимо сравнить. |
Значение для сравнения | Он указывает значение, которое не изменяется в элементе управления вводом. |
Оператор | Он определяет оператор сравнения. Доступные значения включают: равенство, неравенство, больше или равно, меньше, меньше или равно и проверку типа данных. |
Основной синтаксис этого элемента управления следующий:
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator"></asp:CompareValidator>
Элемент управления RegularExpressionValidator позволяет определить допустимость входных данных путем сопоставления их с регулярным выражением. Регулярное выражение задается в свойстве ValidationExpression.
В следующей таблице приведены синтаксические структуры, обычно используемые в регулярных выражениях:
escape-символ | описывать |
---|---|
б | Соответствует клавише Backspace. |
т | Вкладка «Матчи». |
р | Соответствует клавише Enter. |
в | Соответствует символам вертикальной табуляции. |
е | Соответствует символу перевода страницы. |
п | Соответствовать новой строке. |
escape-символ. |
Помимо простого сопоставления символов, можно задать тип символов. Эти символы называются подстановочными знаками.
подстановочный знак | описывать |
---|---|
. | Может соответствовать любому символу, кроме n. |
[абкд] | Может соответствовать любому символу в наборе. |
[^abcd] | Исключите любого персонажа из набора. |
[2-7а-мА-М] | Соответствует любому символу в определенном диапазоне. |
ш | Соответствует любой буквенно-цифровой группе символов и знаку подчеркивания. |
Вт | Соответствует любому символу, не являющемуся словом. |
с | Сопоставление символов, таких как пробелы, позиции табуляции, новые строки и т. д. |
С | Соответствует любому символу, не являющемуся пробелом. |
д | Соответствует любому десятичному символу. |
Д | Соответствует любому недесятичному символу. |
Кванторы могут указывать определенное количество слов, в которых встречается символ.
квантификатор | описывать |
---|---|
* | Ноль или более совпадений. |
+ | Одно или несколько совпадений. |
? | Ноль или одно совпадение. |
{Н} | N совпадений. |
{Н,} | N или более совпадений. |
{Н,М} | Матч между Н и М. |
Основной синтаксис этого элемента управления следующий:
<asp:RegularExpressionValidator ID="string" runat="server" ErrorMessage="string" ValidationExpression="string" ValidationGroup="string"></asp:RegularExpressionValidator>
Элемент управления CustomValidator позволяет писать специальные процедуры проверки на стороне клиента и сервера для проверки значений.
Проверка клиента выполняется соответствующим образом через ClientValidationFunction. Процедуры проверки на стороне клиента должны быть написаны на языке сценариев, понятном браузеру, например JavaScript или VBScript.
Процедуры проверки на стороне сервера должны создаваться обработчиком событий ServerValidate элемента управления. Процедуры проверки на стороне сервера должны быть написаны на любом языке .Net, например C# или VB.Net.
Основной синтаксис этого элемента управления следующий:
<asp:CustomValidator ID="CustomValidator1" runat="server" ClientValidationFunction=.cvf_func. ErrorMessage="CustomValidator"></asp:CustomValidator>
Элемент управления ValidationSummary не выполняет никакой проверки, но отображает сводку всех ошибок на странице. В этой сводке отображаются значения свойства ErrorMessage всех элементов управления, не прошедших проверку.
Следующие два списка взаимовключающих атрибутов содержат сообщения об ошибках:
ShowSummary : отображает информацию об ошибках в специальном формате.
ShowMessageBox : отображать сообщения об ошибках в отдельном окне.
Основной синтаксис этого элемента управления следующий:
<asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode = "BulletList" ShowSummary = "true" HeaderText="Errors:" />
Сложные страницы будут иметь разные наборы информации на разных уровнях. В этом случае у разных групп будут разные проверки. Эту ситуацию можно решить, используя группы проверки.
Чтобы создать группу проверки, необходимо поместить элемент управления вводом и элемент управления проверкой в одну и ту же логическую группу, задав их свойства ValidationGroup.
В следующем примере описана форма из четырех частей, которую будет заполнять вся школа, чтобы баллотироваться на пост президента. Здесь мы будем использовать элементы управления проверкой для проверки того, что ввел пользователь.
Вот как это выглядит в представлении «Дизайн»:
Код этой части следующий:
<form id="form1" runat="server"> <table> <tr> <td colspan="3" align="center"> <asp:Label ID="lblmsg" Text="Форма выборов президента: выберите президент" runat="server" /> </td> </tr> <tr> <td> Кандидат: </td> <td> <asp:DropDownList ID="ddlcandidate" runat="server" > <asp:ListItem>Пожалуйста, выберите кандидата</asp:ListItem> <asp:ListItem>М. Х. Кабир</asp:ListItem> <asp:ListItem>Стив Тейлор</asp:ListItem> <asp:ListItem>Джон Абрахам</ asp:ListItem> <asp:ListItem>Венера Уильямс</asp:ListItem> </asp:DropDownList> </td> <td> <asp:RequiredFieldValidator ID="rfvcandidate" runat="server" ControlToValidate ="ddlcandidate" ErrorMessage="Пожалуйста, выберите кандидата" InitialValue="Пожалуйста, выберите кандидата"> </asp:RequiredFieldValidator> </td> </tr> <tr> < td> Дом: </td> <td> <asp:RadioButtonList ID="rblhouse" runat="server" RepeatLayout="Flow"> <asp:ListItem>Красный</asp:ListItem> <asp:ListItem>Синий</asp:ListItem> <asp:ListItem>Желтый</asp:ListItem> <asp:ListItem>Зеленый</asp:ListItem> </ asp:RadioButtonList> </td> <td> <asp:RequiredFieldValidator ID="rfvhouse" runat="server" ControlToValidate="rblhouse" ErrorMessage="Введите название вашего дома" > </asp:RequiredFieldValidator> <br /> </td> </tr> <tr> <td> Класс: </td> <td> <asp:TextBox ID="txtclass " runat="server"></asp:TextBox> </td> <td> <asp:RangeValidator ID="rvclass" runat="server" ControlToValidate="txtclass" ErrorMessage="Введите свой класс (6–12)" MaximumValue="12" МинимумValue="6" Type="Целое число"> </asp:RangeValidator> </td> </tr> <tr> <td> Электронная почта: </td> <td> <asp:TextBox ID="txtemail" runat="server"> </asp:TextBox> </td> <td> <asp:RegularExpressionValidator ID="remail" runat="server" ControlToValidate="txtemail" ErrorMessage="Введите адрес электронной почты" ValidationExpression="w+([-+.']w+)*@w+([ -.]w+)*.w+([-.]w+)*"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td align="center" colspan="3"> <asp:Button ID="btnsubmit" runat="server" onclick="btnsubmit_Click" style="text-align: center" Text= "Отправить" /> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" DisplayMode ="BulletList" ShowSummary ="true" HeaderText="Ошибки:" /></form>
Код кнопки отправки следующий:
protected void btnsubmit_Click(object sender, EventArgs e){ if (Page.IsValid) { lblmsg.Text = "Спасибо" } else { lblmsg.Text = "Заполните все поля" }};