Поделиться через


Пошаговое руководство. Проверка сведений, вводимых пользователем на странице веб-форм

Обновлен: Ноябрь 2007

В этом пошаговом руководстве содержится описание использования проверяющих элементов управления ASP.NET для проверки сведений, вводимых пользователем на веб-странице. В руководстве рассматривается работа с некоторыми элементами управления, которые выполняют всю проверку автоматически без необходимости создания кода. Кроме того, будет также создан проверяющий элемент управления с написанием кода, что демонстрирует добавление собственной логики к структуре проверки страницы. И наконец, будет рассмотрена проверка сведений, вводимых пользователем, в определенных условиях в зависимости от вариантов, выбираемых пользователем на странице.

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

Создаваемая страница используется для запроса адреса электронной почты пользователя, количества людей для резервирования и предпочтительной даты. Страница также позволяет пользователю оставлять запрос на подтверждение резервирования по телефону. (По умолчанию на данной странице, если эта возможность реализована, запрашивается подтверждение по электронной почте.)

a0z2h4sw.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

По умолчанию страница веб-форм автоматически проверяет, не пытается ли пользователь-злоумышленник передать в приложение сценарий. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.

В процессе выполнения этого пошагового руководства вы научитесь:

  • Использовать проверяющие элементы управления для проверки сведений, введенных пользователем на веб-странице ASP.NET.

  • Форматировать отображение сообщений об ошибках проверки.

  • Создавать пользовательскую проверку путем написания кода.

Обязательные компоненты

Для выполнения этого пошагового руководства потребуется:

  • Visual Studio и платформа .NET Framework.

Создание веб-узла и страницы

В первой части пошагового руководства вам предстоит создать веб-узел и страницу для работы со стилями.

Если веб-узел в Visual Studio уже создан (например, при работе с разделом Пошаговое руководство. Создание базовой веб-страницы в Visual Web Developer), можно использовать его и перейти к пункту "Добавление элементов управления" далее в этом пошаговом руководстве. В противном случае создайте новый веб-узел и страницу, выполнив следующие действия.

Создание веб-узла на базе файловой системы

  1. Запустите Visual Studio.

  2. В меню Файл выберите Создатьвеб-узел.

    Откроется диалоговое окно Создать веб-узел.

  3. В списке Язык выберите предпочтительный язык программирования.

    Выбранный язык программирования будет языком по умолчанию для веб-узла, но можно задать язык программирования для каждой страницы отдельно.

  4. В группе Установленные шаблоны Visual Studio выберите Веб-узел ASP.NET.

  5. В поле Расположение введите имя папки, где следует хранить страницы веб-узла.

    Например, введите имя папки C:\WebSites.

  6. Нажмите кнопку OК.

    Visual Studio создает папку и новую страницу с именем Default.aspx.

Добавление элементов управления

Будут использованы только некоторые элементы управления для запроса на ввод пользователем информации, необходимой для резервирования.

Добавление элементов управления и текста

  1. Перейдите в представление конструирования.

  2. Введите заголовок страницы, например Отправка запроса на резервирование.

  3. Из группы Стандартные в панели элементов перетащите следующие элементы управления на страницу и задайте их свойства, как показано далее.

    1. Элемент управления

    1. Свойства

    TextBox

    ID: textEmail

    TextBox

    ID: textNumberInParty

    TextBox

    ID: textPreferredDate

    Button

    ID: buttonSubmit

    Text: Отправить запрос

    ValidationGroup: AllValidators

    Label

    ID: labelMessage

    Text: (пусто)

    a0z2h4sw.alert_note(ru-ru,VS.90).gifПримечание.

    Точный макет страницы не имеет значения.

  4. Введите текст перед текстовыми полями в качестве надписей.

  5. Дважды щелкните кнопку Submit Request, чтобы создать обработчик событий Click, а затем добавьте следующий выделенный код:

    Protected Sub buttonSubmit_Click(ByVal sender As Object, _
           ByVal e As System.EventArgs)
        If Page.IsValid Then      labelMessage.Text = "Your reservation has been processed."    End If
    End Sub
    
    protected void buttonSubmit_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)    {      labelMessage.Text = "Your reservation has been processed.";    }
    }
    

    Обработчик кнопки просто отображает сообщение; действительная обработка не выполняется. Однако отображение сообщения позволит протестировать эффективность проверки далее в пошаговом руководстве.

  6. Перейдите в представление конструирования, дважды щелкните пустую область на странице, чтобы создать обработчик Page_Load, а затем добавьте следующий выделенный код:

    Protected Sub Page_Load(ByVal sender As Object, _
        ByVal e As EventArgs)
       labelMessage.Text = ""
    End Sub
    
    protected void Page_Load(object sender, EventArgs e)
    {
        labelMessage.Text = "";
    }
    

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

Добавление основной проверки

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

  • Необходимо указать адрес электронной почты в правильном формате, например proverka@example.com. (Как правило, проверка того, что адрес электронной почты является действительным, нецелесообразна; однако можно проверить соответствие адреса правильному шаблону адресов электронной почты.)

  • Необходимо также ввести количество людей в числовом формате.

  • Необходимо указать предпочтительную дату.

Можно добавить все эти сведения для проверки с помощью проверяющих элементов управления, которые выполняют все проверки и автоматически отображают ошибки.

a0z2h4sw.alert_note(ru-ru,VS.90).gifПримечание.

Позднее в этом пошаговом руководстве будет добавлена еще одна проверка, чтобы убедиться, что пользователи указали действительную дату.

Добавление основной проверки

  1. Перейдите в представление конструирования. Перетащите элемент управления RequiredFieldValidator из группы Validation (Проверка) и поместите его рядом с текстовым полем textEmail.

  2. Задайте следующие свойства элемента управления RequiredFieldValidator:

    Свойство

    Параметр

    ControlToValidate

    textEmail

    Связывает проверяющий элемент управления с текстовым полем, содержимое которого необходимо проверить.

    Display

    Динамический

    Указывает, что визуализация элемента управления осуществляется (и он занимает пространство на странице), только если он необходим для отображения ошибки.

    ErrorMessage

    Требуется адрес электронной почты.

    Отображает текст в сводном сообщении об ошибке, которое будет настроено далее в пошаговом руководстве.

    Text

    *

    Звездочка является традиционным способом обозначения полей, обязательных для ввода. Этот текст будет отображаться только при наличии ошибки.

    ValidationGroup

    AllValidators

    Можно объединить проверяющие элементы управления, как и переключатели, в группы, которые воспринимаются как одно целое. Дополнительные сведения о группировании проверяющих элементов управления представлены далее в пошаговом руководстве.

    Ранее было выполнено добавление теста для проверки ввода пользователем адреса электронной почты. Проверяющий элемент управления выполняет все проверки и отображает сообщение об ошибке с необходимостью добавления кода на страницу.

  3. Перетащите элемент управления RegularExpressionValidator из группы Validation (Проверка) и поместите его рядом с только что добавленным элементом RequiredFieldValidator.

  4. Задайте следующие свойства элемента управления RegularExpressionValidator:

    1. Свойство

    1. Параметр

    ControlToValidate

    textEmail

    Повторно выполняется проверка данных, введенных пользователем в поле адреса электронной почты.

    Display

    Динамический

    ErrorMessage

    Адреса электронной почты должны иметь формат proverka@example.xyz.

    Длинное сообщение об ошибке.

    Text

    Недопустимый формат!

    Короткое сообщение об ошибке.

    ValidationGroup

    AllValidators

    Можно объединить проверяющие элементы управления, как и переключатели, в группы, которые воспринимаются как одно целое. Дополнительные сведения о группировании проверяющих элементов управления представлены далее в пошаговом руководстве.

  5. При выбранном элементе управления RegularExpressionValidator в окне свойств щелкните кнопку с многоточием в поле ValidationExpression.

    Регулярные выражения образуют язык, который можно использовать для поиска точно определенных шаблонов в строках. В элементе управления RegularExpressionValidator можно определить регулярное выражение для шаблона, который является допустимым — в данном случае шаблон для допустимого адреса электронной почты.

    Редактор регулярных выражений содержит список часто используемых регулярных выражений, поэтому вы можете использовать проверяющий элемент управления, не зная синтаксиса регулярного выражения.

  6. В списке Standard Expressions (Стандартные выражения) щелкните Internet E-mail Address (Адрес электронной почты).

    Регулярное выражение для адреса электронной почты помещается в поле Validation Expression (Выражение проверки).

  7. Нажмите кнопку ОК, чтобы закрыть диалоговое окно.

  8. Добавьте другой элемент управления RequiredFieldValidator, следуя инструкциям для шагов 1–3. Однако в этом случае свяжите его с текстовым полем textNumberInParty и установите для свойства ErrorMessage значение Укажите количество приглашенных.

  9. Перетащите элемент управления RangeValidator из группы Validation (Проверка) и поместите его рядом с только что добавленным элементом RequiredFieldValidator.

  10. Задайте следующие свойства элемента управления RangeValidator:

    1. Свойство

    1. Параметр

    ControlToValidate

    textNumberInParty

    Display

    Динамический

    ErrorMessage

    Введите число от 1 до 20, чтобы указать количество приглашенных.

    MaximumValue

    20

    В этом случае произвольное, но высокое значение.

    MinimumValue

    1

    В этом приложении для резервирования необходим хотя бы один человек.

    Text

    Введите число от 1 до 20.

    Type

    Integer

    ValidationGroup

    AllValidators

    Элемент управления RangeValidator выполняет две функции: удостоверяет, что пользователь вводит данные в цифровом формате, и проверяет, не находится ли число в диапазоне между указанными минимальным и максимальным значениями.

Проверка страницы

Теперь можно выполнить тестирование проверяющих элементов управления, имеющихся на этом этапе.

Тестирование основной проверки

  1. Нажмите клавиши CTRL+F5 для запуска страницы.

  2. Когда страница отобразится в обозревателе, нажмите кнопку Submit Request.

    Отображается несколько ошибок проверки, так как не были заполнены некоторые обязательные поля. Обратите внимание, что ошибки проверки отображаются незамедлительно — передача страницы не выполняется. По умолчанию проверяющие элементы управления вставляют в страницу ECMAScript (JavaScript) со стороны клиента, чтобы выполнить проверку в обозревателе. Это позволяет пользователям незамедлительно видеть ошибки проверки; без клиентского сценария для проверка ошибок необходимо обращение к серверу, что приводит к увеличению времени выполнения. В действительности отправка страницы невозможна, пока не будут пройдены все проверки со стороны клиента. (Аналогичная проверка выполняется повторно при отправке страницы в качестве меры безопасности.)

  3. Выполните проверку текстового поля textEmail: введите недопустимый адрес электронной почты, а затем — допустимый адрес электронной почты, например свой собственный.

  4. Убедитесь, что введены только числовые значения от 1 до 20 в текстовом поле Number of people in party (Количество приглашенных).

  5. После ввода допустимых значений нажмите кнопку Submit Request (Отправить запрос). Если проверка пройдена для всех элементов управления, появится сообщение Your reservation has been processed (Резервирование было обработано).

  6. После того как вы убедитесь, что проверка выполняется ожидаемым образом, закройте обозреватель.

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

Альтернативные способы отображения сведений об ошибке

По умолчанию проверяющие элементы управления отображают текст ошибки на месте, то есть они отображают значение свойства Text элемента управления в местоположении элемента управления на странице. Иногда может потребоваться отображение сведений об ошибке иными способами. Проверяющие элементы управления ASP.NET предоставляют следующие дополнительные возможности:

  • Объединение всех ошибок проверки в одном месте. Это действие можно выполнить вместо отображения ошибок на месте или в дополнение к этому. Отображение суммарных ошибок также позволяет отобразить более длинные сообщения об ошибках.

  • Отображение в обозревателе всплывающих сообщений, содержащих сведения об ошибках. Этот параметр работает только в обозревателях с поддержкой сценариев.

Для добавления обоих параметров отображения можно использовать элемент управления ValidationSummary. В этой части пошагового руководства на страницу будут добавлены оба средства отображения.

Отображение сведений о проверке альтернативными способами

  1. Из группы Validation (Проверка) в панели элементов перетащите элемент управления ValidationSummary на страницу.

  2. Присвойте свойству ValidationGroup элемента управления ValidationSummary значение AllValidators.

  3. Запустите страницу.

  4. Выполните такую же проверку, которая выполнялась ранее в соответствии с инструкциями в этом пошаговом руководстве.

    Сведения о каждой ошибке отобразятся в двух местах. Короткое сообщение об ошибке (значение свойства Text проверяющего элемента управления) отобразится в местоположении проверяющего элемента управления. Более длинное сообщение об ошибке (значение свойства ErrorMessage элемента управления) отображается в элементе управления ValidationSummary.

  5. Закройте обозреватель.

  6. Задайте для свойства ShowMessageBox элемента управления ValidationSummary значение true.

  7. Запустите страницу.

  8. Выполните эти же проверки.

    На этот раз каждая ошибка отобразится в виде всплывающего сообщения в обозревателе.

  9. Закройте обозреватель.

Пошаговое руководство. Добавление пользовательской проверки в набор данных

Проверяющие элементы управления ASP.NET не включают элемент управления, который автоматически проверяет правильность указанной даты. Однако для этой цели можно использовать элемент управления CustomValidator. Пользовательский проверяющий элемент управления позволяет создавать собственный код для проверки любого условия, удовлетворения которого требует приложение. В этом пошаговом руководстве используется CustomValidator, чтобы проверить, что значение, вводимое пользователем в текстовом поле textPreferredDate, может быть преобразовано в значение даты.

Будут добавлены два блока пользовательского кода проверки. Первый блок — это пользовательский код проверки, который выполняется при отправке страницы. Для элемента управления CustomValidator должна всегда присутствовать логика проверки на стороне сервера. Будет также создан определенный клиентский сценарий (ECMAScript или JavaScript), который выполняет аналогичную проверку в обозревателе, что обеспечивает незамедлительную обратную связь с пользователем.

Использование пользовательского проверяющего элемента управления для проверки правильности указанной даты

  1. Из группы Validation (Проверка) панели элементов перетащите на страницу элемент управления CustomValidator и поместите его рядом с текстовым полем textPreferredDate.

  2. Задайте следующие свойства элемента управления CustomValidator:

    Свойство

    Параметр

    ControlToValidate

    textPreferredDate

    Display

    Динамический

    ErrorMessage

    Введите дату в формате м/д/гггг.

    Text

    Недопустимый формат даты (необходимо использовать формат м/д/гггг).

    ValidationGroup

    AllValidators

  3. Дважды щелкните элемент управления CustomValidator, чтобы создать обработчик для его события ServerValidate, а затем добавить следующий выделенный код:

    Protected Sub CustomValidator1_ServerValidate( _
       ByVal source As Object, _
       ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
       Try      DateTime.ParseExact(args.Value, "d", _         System.Globalization.DateTimeFormatInfo.InvariantInfo)      args.IsValid = True   Catch      args.IsValid = False   End Try
    End Sub
    
    protected void CustomValidator1_ServerValidate(object source, 
        ServerValidateEventArgs args)
    {
        try    {        DateTime.ParseExact(args.Value, "d",            System.Globalization.DateTimeFormatInfo.InvariantInfo);        args.IsValid = true;    }    catch    {       args.IsValid = false;    }
    }
    

    Этот код выполняется, когда пользователь отправляет страницу. Код взаимодействует с проверяющим элементом управления с помощью объекта ServerValidateEventArgs (args), передаваемого в обработчик. Значение, введенное пользователем в текстовом поле textPreferredDate, передается как свойство Value объекта args. После проверки правильности данных, введенных пользователем, для свойства IsValid объекта args устанавливается значение true или false. Если для свойства установлено значение false, то проверяющий элемент управления будет отображать сообщение об ошибке.

    В этом примере код использует блок try-catch, чтобы определить возможность преобразования данных, введенных пользователем, в объект DateTime. Если пользователь вводит недопустимое значение (которое не соответствует дате в формате м/д/гггг), то метод ParseExact объекта DateTime вызывает исключение, и выполняется блок Catch.

    a0z2h4sw.alert_note(ru-ru,VS.90).gifПримечание.

    Значение параметра provider метода DateTime.ParseExact не зависит от языка и региональных параметров. Если требуется использовать текущее значение языка и региональных параметров, то можно установить параметр provider в значение null.

  4. В обработчик Button_Click добавьте следующий выделенный код:

    Protected Sub buttonSubmit_Click(ByVal sender As Object, _
           ByVal e As System.EventArgs)
       If Page.IsValid Then
          labelMessage.Text = "Your reservation has been processed."
       Else     labelMessage.Text = "Page is not valid."End If
    End Sub
    
    protected void buttonSubmit_Click(object sender, EventArgs e)
    {
        if(Page.IsValid)    {
            labelMessage.Text = "Your reservation has been processed.";
        }    else    {        labelMessage.Text = "Page is not valid.";    }
    }
    

    При использовании элемента управления CustomValidator необходимо проверить свойство Page.IsValidдля обработки на стороне сервера, чтобы убедиться в прохождении всех проверок. Свойство IsValid возвращает общее состояние всех проверяющих элементов управления на странице. Это свойство используется, чтобы убедиться, что все проверяющие элементы управления прошли обработку на стороне сервера.

На этом этапе добавлен код на стороне сервера для элемента управления CustomValidator, чтобы проверить правильность даты. Как было указано ранее в данном пошаговом руководстве, проверяющие элементы управления также проверяют данные, вводимые пользователем, с помощью клиентского сценария. Можно также добавить клиентский сценарий в элемент управления CustomValidator. Фактически создается клиентский сценарий, который дублирует логику, реализуемую элементом управления на стороне сервера. Создание пользовательского кода проверки на стороне клиента не всегда является целесообразным (например, если пользовательский код проверяет данные, вводимые пользователем, путем поиска в базе данных на стороне сервера). Однако в этом случае можно создать код на стороне клиента, который выполняет по сути такую же проверку, как и код на стороне сервера.

Добавление клиентского сценария в проверяющий элемент управления

  1. Откройте страницу Default.aspx или переключитесь на нее.

  2. В элемент <head> страницы добавьте следующий блок клиентского сценария:

    <script language="javascript">
    function validateDate(oSrc, args)
    {
      var iDay, iMonth, iYear;
      var arrValues;
      arrValues = args.Value.split("/");
      iMonth = arrValues[0];
      iDay = arrValues[1];
      iYear = arrValues[2];
    
      var testDate = new Date(iYear, iMonth - 1, iDay);
      if ((testDate.getDate() != iDay) ||
          (testDate.getMonth() != iMonth - 1) ||
          (testDate.getFullYear() != iYear))
      {
         args.IsValid = false;
         return;
      }
    
      return true;
    }</script>
    
    a0z2h4sw.alert_note(ru-ru,VS.90).gifПримечание.

    ECMAScript (JavaScript) учитывает регистр; вводите код в точном соответствии с тем, как он отображается.

    Этот код имеет сходство с проверкой на стороне сервера, но не является настолько строгим. Данные, введенные пользователем, переданы в функцию как свойство Value объекта args и можно задать свойство IsValid объекта, чтобы указать, прошло ли значение проверку. В этом примере код выполняет проверку правильности ввода даты в числовом формате.

    Обратите внимание, что клиентский сценарий кода для пользовательской проверки слегка отличается от клиентского сценария кода сервера. ECMAScript не предоставляет абсолютно такие же функциональные возможности, как платформа .NET Framework. Поэтому ECMAScript анализирует введенный текст, а не код ParseExact, который используется на сервере для проверки даты. Однако две проверки (на стороне клиента и на стороне сервера) обладают достаточным сходством и предоставляют необходимые функциональные возможности.

  3. Поместите курсор на элемент <asp:customvalidator>, чтобы выбрать его.

  4. В окне свойств установите для свойства ClientValidationFunction элемента управления значение validateDate, которое является именем только что созданной функции ECMAScript.

    На этом этапе добавлена пользовательская проверка, которая выполняется как в клиентском сценарии для незамедлительной проверки данных, введенных пользователем, так и повторно при отправке страницы на сервер.

Тестирование пользовательской проверки

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

Тестирование пользовательской проверки

  1. Временно отключите проверку на стороне клиента, установив для свойства EnableClientScript элемента управления CustomValidator значение false.

  2. Нажмите сочетание клавиш CTRL + F5, чтобы запустить страницу.

  3. Введите адрес электронной почты и число приглашенных людей, чтобы эти поля прошли проверку.

  4. В текстовом поле даты введите строку, которая явно не является датой, а затем нажмите кнопку Submit Request.

    Страница выполняет цикл обработки для веб-сервера; при этом происходит сбой проверки на стороне сервера. Происходит сбой проверки свойства IsValid и labelMessage отображает сообщение "Page is not valid" (Недопустимая страница).

  5. Введите допустимое значение даты (например 11/17/2005) и нажмите кнопку.

    На этот раз значение даты проходит поверку и отображается подтверждение, созданное обработчиком кнопки Click.

  6. Закройте обозреватель.

  7. Повторно включите проверку на стороне клиента, установив для свойства EnableClientScript элемента управления CustomValidator значение true.

  8. Запустите страницу еще раз и введите допустимые значения в полях адреса электронной почты и числа приглашенных людей.

    Введите допустимое значение даты в текстовом поле даты, затем нажмите клавишу TAB. (Не нажимайте кнопку.)

    Про потере фокуса текстовым полем даты выполняется сценарий проверки на стороне клиента и отображается сообщение об ошибке.

    a0z2h4sw.alert_note(ru-ru,VS.90).gifПримечание.

    Если в обозревателе Internet Explorer используется функция автозаполнения, выбор значения в списке автозаполнения приводит к вводу значения в текстовом поле, но проверяющий элемент управления на стороне клиента не выполняется.

  9. Нажмите кнопку Submit Request.

    Так как произошел сбой проверки текстового поля даты на стороне клиента, страница не отправляется.

  10. Исправьте значение даты и нажмите клавишу TAB еще раз.

    Сообщение об ошибке исчезает. Теперь можно отправить форму.

Добавление дополнительных элементов управления с условной проверкой

В завершающей части пошагового руководства в форму резервирования будут добавлены некоторые дополнительные сведения. Пользователи могут установить флажок, чтобы указать необходимость подтверждения резервирования по телефону. В этом случае они должны ввести номер телефона. Поэтому страница должна содержать два дополнительных элемента управления: флажок и текстовое поле.

Как и ранее, необходимо использовать проверку данных, введенных пользователем. Элемент управленияRequiredFieldValidator используется, чтобы убедиться, что пользователи ввели номер телефона, а элемент управления RegularExpressionValidator — для проверки его формата. Ввод номера телефона является необязательной возможностью; необходимо проверить номер телефона, только если пользователь установил флажок Confirm reservation by phone. Поэтому следует написать определенный простой код, который включает или отключает проверку номера телефона в зависимости от состояния флажка.

Добавление условной проверки

  1. Из группы Стандартные в панели элементов перетащите элемент управления CheckBox на страницу и задайте следующие свойства:

    Свойство

    Параметр

    ID

    checkPhoneConfirmation

    AutoPostBack

    True

    Когда пользователь выбирает флажок, страница выполняет цикл обработки и в зависимости от результата выбора текстовое поле и его проверку.

    CausesValidation

    False

    Выбор CheckBox не приводит к автоматическому включению проверки.

    Text

    Confirm reservation by telephone (Подтвердить резервирование по телефону).

  2. Перетащите элемент управления TextBox на страницу под элемент управления CheckBox и задайте следующие свойства:

    1. Свойство

    1. Параметры

    ID

    textPhoneNumber

    Enabled

    False

    Текстовое поле не включится, пока пользователь не установит флажок.

  3. Введите текст, например Telephone number: (Номер телефона:), рядом с текстовым полем для ввода номера телефона в качестве заголовка.

  4. Из группы Validation (Проверка) в панели элементов перетащите элемент управления RequiredFieldValidator на страницу и задайте следующие свойства:

    Свойство

    Параметр

    ID

    validatorRequiredPhoneNumber

    В предыдущих разделах пошагового руководства идентификатор проверяющих элементов управления не был установлен, но в этом случае выполняется обращение к проверяющему элементу управления в коже, поэтому рекомендуется назначить мнемонический идентификатор.

    ControlToValidate

    textPhoneNumber

    Display

    Динамический

    ErrorMessage

    You must provide a phone number. (Необходимо указать номер телефона.)

    Text

    *

    ValidationGroup

    (Оставьте пустым)

    Если это свойство оставлено пустым, проверяющий элемент управления не принадлежит к группе AllValidators, установленной для других проверяющих элементов управления на странице. Следовательно, по умолчанию этот проверяющий элемент управления не проверяется при выборе элемента управления buttonSubmit.

  5. Перетащите элемент управления RegularExpressionValidator на страницу и задайте следующие свойства:

    Свойство

    Параметр

    ID

    validatorRegExPhoneNumber

    ControlToValidate

    textPhoneNumber

    Display

    Динамический

    ErrorMessage

    Недопустимый формат номера телефона

    Text

    Недопустимый формат

    ValidationExpression

    (Используйте диалоговое окно редактора регулярных выражений, чтобы выбрать Телефонный номер США или другое выражение номера телефона.)

    ValidationGroup

    (Оставьте пустым)

  6. Дважды щелкните элемент управления checkPhoneConfirmation, чтобы создать обработчик для его события CheckedChanged, а затем добавить следующий выделенный код:

    Protected Sub checkPhoneConfirmation_CheckedChanged( _
       ByVal sender As Object, _
       ByVal e As System.EventArgs)
       If checkPhoneConfirmation.Checked = True Then      textPhoneNumber.Enabled = True      validatorRequiredPhoneNumber.ValidationGroup = "AllValidators"      validatorRegExPhoneNumber.ValidationGroup = "AllValidators"   Else      textPhoneNumber.Enabled = False      validatorRequiredPhoneNumber.ValidationGroup = ""      validatorRegExPhoneNumber.ValidationGroup = ""   End If
    End Sub
    
    protected void checkPhoneConfirmation_CheckedChanged(
        object sender, EventArgs e)
    {
        if(checkPhoneConfirmation.Checked)    {        textPhoneNumber.Enabled = true;        validatorRequiredPhoneNumber.ValidationGroup =             "AllValidators";        validatorRegExPhoneNumber.ValidationGroup = "AllValidators";    }    else    {        textPhoneNumber.Enabled = false;        validatorRequiredPhoneNumber.ValidationGroup = "";        validatorRegExPhoneNumber.ValidationGroup = "";    }
    }
    

    Когда пользователь выбирает флажок, два проверяющих элемента управления, ассоциированных с тестовым полем, добавляются в группы проверки, к которой принадлежат другие проверяющие элементы управления. В результате все проверяющие элементы управления на странице, включая элементы управления для номера телефона, будут проверяться при отправке пользователем страницы. Если пользователь снимает флажок, проверяющие элементы управления удаляются из группы, а следовательно, их обработка не выполняется при нажатии кнопки Submit Request (Отправить запрос).

Тестирование условной проверки

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

Тестирование условной проверки

  1. Нажмите сочетание клавиш CTRL + F5, чтобы запустить страницу.

  2. Введите правильные сведения в поля ввода адреса электронной почты, числа приглашенных людей и даты.

  3. Нажмите кнопку Submit Request (Отправить запрос).

    Выполняется отправка страницы, и отображается предупреждение.

  4. Установите флажок Confirm reservation by phone (Подтвердить резервирование по телефону).

  5. Нажмите кнопку Submit Request (Отправить запрос) еще раз.

    На этот раз отображается сообщение об ошибке (звездочка рядом с текстовым полем ввода номера телефона). При установке флажка была включена проверка текстового поля.

  6. Введите недопустимый номер телефона, затем нажмите кнопку Submit Request еще раз, чтобы убедиться, что текстовое поле не допускает ввода неверного номера телефона.

  7. Введите номер телефона в правильном формате, затем нажмите кнопку отправки, чтобы убедиться, что проверяющий элемент управления допускает ввод данных в правильном формате.

    a0z2h4sw.alert_note(ru-ru,VS.90).gifПримечание.

    Если в редакторе регулярных выражений выбрано значение Телефонный номер США для свойства ValidationExpression элемента управления RegularExpressionValidator, то телефонный номер в правильном формате должен состоять из кода региона (дополнительного поля в 3 цифры, заключенные в скобки или отделенные от следующих цифр дефисом), за которым следуют 3 цифры, дефис и еще 4 цифры. Например, допустимыми значениями будут (425) 555-0123, 425-555-0123 или 555-0123.

Следующие действия

Проверка, добавленная в страницу Web Forms, иллюстрирует основные понятия, относящиеся к проверяющим веб-элементов управления.

Важным аспектом этой проверки являются сведения о том, как это поможет повысить безопасность веб-узла. Дополнительные сведения см. в разделе Общие сведения об угрозах безопасности веб-приложений.

См. также

Основные понятия

Общие сведения об использовании сценариев

Ссылки

Проверка сведений, вводимых пользователем на веб-страницах ASP.NET