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


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

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

Если существующие проверяющие элементы управления ASP.NET не соответствуют требованиям, можно определить настраиваемую функцию серверной проверки и вызвать ее с помощью элемента управления CustomValidator. Также можно добавить проверку на стороне клиента для выполнения быстрой проверки пользовательского ввода перед отправкой страницы путем написания функции на ECMAScript (JavaScript), дублирующей логику серверного метода.

Проверку на стороне сервера следует выполнять даже при выполнении проверки на стороне клиента. Проверка на стороне сервера предотвращает возможность пропуска проверки путем отключения или изменения клиентского сценария.

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

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

Выполнение проверки на сервере с помощью настраиваемой функции

  1. Добавьте на страницу элемент управления CustomValidator и задайте следующие свойства:

    Свойство

    Описание

    ControlToValidate

    Идентификатор проверяемого элемента управления.

    ErrorMessage, Text, Display

    В этих свойствах указывается текст и расположение ошибок, которые будут отображаться при неудачном завершении проверки. Дополнительные сведения см. в разделе Практическое руководство. Управление отображением сообщений об ошибках проверки для серверных элементов управления ASP.NET.

  2. Создайте серверный обработчик событий для события ServerValidate данного элемента управления. Это событие вызывается для выполнения проверки. Этот метод имеет следующую подпись:

    Protected Sub CustomValidator1_ServerValidate(ByVal _
       source As System.Object, ByVal args As _
       System.Web.UI.WebControls.ServerValidateEventArgs) _
       Handles CustomValidator1.ServerValidate
    End Sub
    
    protected void ValidationFunctionName(object source, ServerValidateEventArgs args)
    {
    
    }
    

    Исходный параметр является ссылкой на настраиваемый проверяющий элемент управления, инициирующий данное событие. Свойство args.Value содержит проверяемый пользовательский ввод. Если значение допустимое, то следует присвоить свойству args.IsValid значение true; в противном случае используется значение false.

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

    Protected Sub TextValidate(ByVal source As System.Object, _
       ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) _
       Handles CustomValidator1.ServerValidate
        args.IsValid = (args.Value.Length >= 8)
    End Sub
    
    protected void TextValidate(object source, ServerValidateEventArgs args)
    {
        args.IsValid = (args.Value.Length >= 8);
    }
    
  3. Выполните привязку обработчика событий к методу с помощью следующего кода:

    <asp:textbox id="TextBox1" runat="server"></asp:textbox>
    <asp:CustomValidator id="CustomValidator1" runat="server" 
     OnServerValidate="TextValidate" 
     ControlToValidate="TextBox1" 
     ErrorMessage="Text must be 8 or more characters.">
    </asp:CustomValidator>
    
    <asp:textbox id="TextBox1" runat="server"></asp:textbox>
    <asp:CustomValidator id="CustomValidator1" runat="server" 
      OnServerValidate="TextValidate" 
      ControlToValidate="TextBox1" 
      ErrorMessage="Text must be 8 or more characters.">
    </asp:CustomValidator>
    
  4. Добавьте проверку в код веб-страницы ASP.NET для проверки на допустимость вводимого значения. Дополнительные сведения см. в разделе Практическое руководство. Программная проверка допустимости значений серверных элементов управления ASP.NET.

Создание настраиваемой логики проверки на стороне клиента

  1. Создайте функцию проверки в ECMAScript (JavaScript, JScript).

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

    <script type="text/javascript">
      function validateLength(oSrc, args){
       args.IsValid = (args.Value.length >= 8);
    }
    </script>
    
    <script type="text/javascript">
      function validateLength(oSrc, args){
       args.IsValid = (args.Value.length >= 8);
    }
    </script>
    
    <asp:Textbox id="text1" runat="server" text=""></asp:Textbox>
    <asp:CustomValidator id="CustomValidator2" runat="server" 
     ControlToValidate = "text1"
     ErrorMessage = "You must enter at least 8 characters!"
     ClientValidationFunction="validateLength" >
    </asp:CustomValidator>
    
    <asp:Textbox id="text1" runat="server" text=""></asp:Textbox>
    <asp:CustomValidator id="CustomValidator2" runat="server" 
      ControlToValidate = "text1"
      ErrorMessage = "You must enter at least 8 characters!"
      ClientValidationFunction="validateLength" >
    </asp:CustomValidator>
    
  2. Добавьте проверку в код веб-страницы ASP.NET для проверки на допустимость вводимого значения. Дополнительные сведения см. в разделе Практическое руководство. Программная проверка допустимости значений серверных элементов управления ASP.NET.

См. также

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

Типы проверки для серверных элементов управления ASP.NET

Другие ресурсы

Проверяющие элементы управления ASP.NET