Россия |
Серверные элементы управления
Элемент CompareValidator
Этот элемент позволяет сравнивать введенное пользователем значение с эталонным значением или сравнивать тип введенных данных с заранее заданным типом. Он имеет следующие основные свойства
Приведем пример:
<%@ 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 закреплены три валидатора:
- Первый валидатор ( Val1 ) следит, чтобы поле не было пустым
- Второй валидатор ( Val2 ) контролирует, чтобы введенное значение было целого типа и было меньше или равно значению первого поля
- Третий валидатор обеспечивает, чтобы введенное значение было больше нуля
Все валидаторы примера выводят сообщение в одно и то же место. Если данные, введенные пользователем, удовлетворяют установленным критериям, то обратная отсылка страницы принимается, о чем пользователю посылается извещение.
Элемент 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>