| Россия |
Серверные элементы управления
Элемент 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>