Опубликован: 07.05.2010 | Уровень: для всех | Доступ: платный
Лекция 4:

Серверные элементы управления

< Лекция 3 || Лекция 4: 123456 || Лекция 5 >

Элемент CompareValidator

Этот элемент позволяет сравнивать введенное пользователем значение с эталонным значением или сравнивать тип введенных данных с заранее заданным типом. Он имеет следующие основные свойства

Основные свойства System.Web.UI.WebControls.CompareValidator
Свойство Описание
Type Это свойство контролирует тип вводимого значения в закрепленное поле и может принимать значения:
  • Currency - следит за соблюдением формата денежного представления
  • Date - контролирует формат даты
  • Double - разрешает только число с плавающей точкой
  • Integer - ожидает целое число
  • String - позволяет принимать любую строку
Operator Определяет, какую операцию сравнения нужно выполнять. Поддерживает следующие операции сравнения:
  • Equal - следит за соблюдением равенства значений между контролируемым полем ввода, заданным в свойстве ControlToValidate, и эталонным полем ControlToCompare, либо между ControlToValidate и установленной константой, заданной в ValueToCompare
  • NotEqual - то же, что и Equal, только наоборот - следит, чтобы соблюдалось неравенство
  • GreaterThan - следит, чтобы контролируемый ввод был больше, чем в эталонном поле или установленной константе
  • GreaterThanEqual - следит, чтобы контролируемый ввод был не меньше, чем в эталонном поле или установленной константе
  • LessThan - следит, чтобы контролируемый ввод был меньше, чем в эталонном поле или установленной константе
  • LessThanEqual - следит, чтобы контролируемый ввод был не больше, чем в эталонном поле или установленной константе
  • DataTypeCheck - следит, чтобы тип данных в контролируемом вводе совпадал с типом, определенным в свойстве Type. При установке этого режима свойства ControlToCompare и ValueToCompare игнорируются (в данном случае важен формат данных, а не их значение)
ControlToCompare, ValueToCompare Взаимоисключающие свойства, определяющие либо эталонное поле сравнения, либо константу

Приведем пример:

<%@ Page Language="C#" %>
	
<script runat="server">
	
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Response.Write("<h1>Заказ принят!</h1>");
            Button1.Enabled = false;
        }
    }
</script>
	
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>CompareValidator</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <h2>
                Товар "Рога и копыта"</h2>
            Имеется в наличии:
            <asp:TextBox ID="TextBox1" runat="server" Enabled="False">25</asp:TextBox><br />
            Сколько хотите заказать:
            <asp:TextBox ID="TextBox2" runat="server" /><br />
            
            <asp:RequiredFieldValidator ID="Val1" runat="server" ControlToValidate="TextBox2"
                Display="Dynamic" Text="Укажите количество товара" />
                
            <asp:CompareValidator ID="Val2" runat="server" ControlToValidate="TextBox2"
                Display="Dynamic" Text="Заполните правильно поле заказа"
                Type="Integer" ControlToCompare="TextBox1" Operator="LessThanEqual" />
                
            <asp:CompareValidator ID="Val3" runat="server" ControlToValidate="TextBox2"
                Display="Dynamic" Text="Заполните правильно поле заказа"
                ValueToCompare="0" Operator="GreaterThan" /><br />
                
            <asp:Button ID="Button1" runat="server" Text="Отправить заказ"
                OnClick="Button1_Click" />
        </div>
    </form>
</body>
</html>

В примере в поле TextBox1 указано имеющееся количество товара. Поле TextBox1 является недоступным для редактирования. За полем TextBox2 закреплены три валидатора:

  1. Первый валидатор ( Val1 ) следит, чтобы поле не было пустым
  2. Второй валидатор ( Val2 ) контролирует, чтобы введенное значение было целого типа и было меньше или равно значению первого поля
  3. Третий валидатор обеспечивает, чтобы введенное значение было больше нуля

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

Элемент RangeValidator

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

<%@ Page Language="C#" %>
	
<script runat="server">
	
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Response.Write("<h1>Заказ принят!</h1>");
            Button1.Enabled = false;
        }
    }
</script>
	
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>CompareValidator</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <h2>
                Товар "Рога и копыта"</h2>
            
            Имеется в наличии:
            <asp:TextBox ID="TextBox1" runat="server" Enabled="False" Text="25" /><br />
            Сколько хотите заказать:
            <asp:TextBox ID="TextBox2" runat="server" /><br />
            
            <asp:RequiredFieldValidator ID="Val1" runat="server" ControlToValidate="TextBox2"
                Display="Dynamic" Text="Укажите количество товара" />
                
            <asp:RangeValidator ID="Val2" runat="server" ControlToValidate="TextBox2"
                Display="Dynamic" Text="Заполните правильно поле заказа"
                Type="Integer" MinimumValue="1" MaximumValue="25" /><br />
                
            <asp:Button ID="Button1" runat="server" Text="Отправить заказ" 
                OnClick="Button1_Click" />
        </div>
    </form>
</body>
</html>

Элемент RegularExpressionValidator - пока пропустим!

Элемент CustomValidator - пока пропустим!

Элемент ValidationSummary - пока пропустим!

< Лекция 3 || Лекция 4: 123456 || Лекция 5 >
Илья Онучин
Илья Онучин
Россия
Igor Chelyadinski
Igor Chelyadinski
Беларусь, Минск, №54, 2013