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

Visual Studio 2010

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

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

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

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

Проверка по сравнению с определенным значением

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

    Свойство

    Описание

    ControlToValidate

    Идентификатор элемента управления, для которого пользователь должен ввести значение.

    ErrorMessage, Text, Display

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

  2. Укажите значение для сравнения, задав следующие свойства.

    Свойство

    Описание

    ValueToCompare

    —либо—

    ControlToCompare

    Выражение, вводимое как строка. Для сравнения с константой задайте свойство ValueToCompare. Для сравнения со значением другого элемента управления укажите в качестве значения свойства ControlToCompare идентификатор этого элемента управления. (Элемент управления CompareValidator сравнивает введенные пользователем данные с любым свойством, заданным атрибутом ValidationPropertyAttribute другого элемента управления). При задании как ValueToCompare, так и ControlToCompare, ControlToCompare имеет преимущество.

    Type

    Тип данных двух сравниваемых значений. Типы можно указать с помощью перечисления ValidationDataType, позволяющего использовать имя типа String, Integer, Double, Date или Currency. Перед сравнением выполняется преобразование значений в этот тип. Дополнительные сведения см. в разделе Практическое руководство. Проверка типа данных для серверных элементов управления ASP.NET.

    Operator

    Используемое сравнение. Укажите оператор, используя одно из следующих значений, определенных в перечислении ValidationCompareOperator:

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

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

  3. Добавьте в код проверку на допустимость значений. Дополнительные сведения см. в разделе Практическое руководство. Программная проверка допустимости значений серверных элементов управления ASP.NET.

    В следующем примере кода демонстрируется проверка элемента управления TextBox с помощью элемента управления CompareValidator:

    <table>
      <tr>
        <td>
          <asp:Textbox id="txtAge" runat="server"></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareFieldValidator1" runat="server"
            ForeColor="Red"
            ControlToValidate="txtAge"
            ValueToCompare="0"
            Type="Integer"
            Operator="GreaterThanEqual"
            ErrorMessage="Please enter a whole number zero or greater.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    
    
    

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

    <table>
      <tr>
        <td>
          Arrive<asp:Textbox id="txtArrivalDate" runat="server"></asp:Textbox>
          Depart<asp:Textbox id="txtDepartureDate" runat="server"></asp:Textbox>
        </td>
        <td>
          <asp:CompareValidator id="CompareValidator1" runat="server"
            ForeColor="Red"
            ControlToValidate="txtDepartureDate"
            ControlToCompare="txtArrivalDate"
            Type="Date"       
            Operator="GreaterThanEqual"      
            ErrorMessage="Departure date cannot be earlier than arrival date.">
          </asp:CompareValidator >
        </td>
      </tr>
    </table>
    
    
    
Показ: