Указание групп проверки
Обновлен: Ноябрь 2007
Группы проверки позволяют выполнять проверку элементов управления на странице в виде набора. Каждая группа проверки может выполнять проверку независимо от других групп проверки на странице.
Создайте группу проверки, присвоив свойству ValidationGroup одно и то же имя (строку) для всех элементов управления, которые требуется сгруппировать. Группе проверки можно назначить любое имя, но для всех членов группы необходимо использовать одно имя.
Во время обратной передачи свойство IsValid, принадлежащее классу Page, устанавливается только на основе проверяющих элементов управления в текущей группе проверки. Текущая группа проверки определяется элементом управления, который вызывает проверку. Например, если нажата кнопка с группой проверки LoginForm, то свойство IsValid вернет значение true, если все проверяющие элементы управления, чье свойство ValidationGroup имеет значение LoginForm, являются допустимыми. Другие элементы управления, например, DropDownList могут также начать проверку, если свойство CausesValidation имеет значение true (и свойство AutoPostBack имеет значение true).
Чтобы осуществить проверку программными средствами, можно вызвать перегруженный метод Validate, который принимает параметр validationGroup для начала принудительной проверки только этой группы проверки. Обратите внимание, что при вызове метода Validate свойство IsValid отражает действительность всех групп проверок в настоящий момент. Это касается как групп, которые были проверены в результате выполнения обратного запроса, так и программно проверенных групп. Если любой элемент управления в группе является недопустимым, свойство IsValid возвращает значение false.
В следующем примере кода показано использование свойства ValidationGroup для указания элементу управления начинать проверку, когда элемент управления Button выполняет обратную передачу на сервер. Страница содержит три текстовых поля для сбора данных, вводимых пользователем, и три элемента управления RequiredFieldValidator, которые проверяют заполнение пользователем текстовых полей. Элементы управления RequiredFieldValidator первых двух текстовых полей находятся в группе проверки PersonalInfoGroup, а элемент управления RequiredFieldValidator третьего текстового поля находится в группе проверки LocationInfoGroup. При нажатии кнопки Button1 проверяются только элементы управления в группе проверки PersonalInfoGroup. При нажатии кнопки Button2 проверяется только элемент управления в группе проверки LocationInfoGroup.
<%@ page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Button.ValidationGroup Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Button.ValidationGroup Example</h3>
<asp:label id="NameLabel"
text="Enter your name:"
runat="Server"
AssociatedControlID="NameTextBox">
</asp:label>
 
<asp:textbox id="NameTextBox"
runat="Server">
</asp:textbox>
 
<asp:requiredfieldvalidator id="RequiredFieldValidator1"
controltovalidate="NameTextBox"
validationgroup="PersonalInfoGroup"
errormessage="Enter your name."
runat="Server">
</asp:requiredfieldvalidator>
<br /><br />
<asp:label id="AgeLabel"
text="Enter your age:"
runat="Server"
AssociatedControlID="AgeTextbox">
</asp:label>
 
<asp:textbox id="AgeTextbox"
runat="Server">
</asp:textbox>
 
<asp:requiredfieldvalidator id="RequiredFieldValidator2"
controltovalidate="AgeTextBox"
validationgroup="PersonalInfoGroup"
errormessage="Enter your age."
runat="Server">
</asp:requiredfieldvalidator>
<br /><br />
<!--When Button1 is clicked, only validation
controls that are a part of PersonalInfoGroup
are validated.-->
<asp:button id="Button1"
text="Validate"
causesvalidation="true"
validationgroup="PersonalInfoGroup"
runat="Server" />
<br /><br />
<asp:label id="CityLabel"
text="Enter your city of residence:"
runat="Server"
AssociatedControlID="CityTextbox">
</asp:label>
 
<asp:textbox id="CityTextbox"
runat="Server">
</asp:textbox>
 
<asp:requiredfieldvalidator id="RequiredFieldValidator3"
controltovalidate="CityTextBox"
validationgroup="LocationInfoGroup"
errormessage="Enter a city name."
runat="Server">
</asp:requiredfieldvalidator>
<br /><br />
<!--When Button2 is clicked, only validation
controls that are a part of LocationInfoGroup
are validated.-->
<asp:button id="Button2"
text="Validate"
causesvalidation="true"
validationgroup="LocationInfoGroup"
runat="Server" />
</form>
</body>
</html>
<%@ page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Button.ValidationGroup Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Button.ValidationGroup Example</h3>
<asp:label id="NameLabel"
text="Enter your name:"
runat="Server"
AssociatedControlID="NameTextBox">
</asp:label>
 
<asp:textbox id="NameTextBox"
runat="Server">
</asp:textbox>
 
<asp:requiredfieldvalidator id="RequiredFieldValidator1"
controltovalidate="NameTextBox"
validationgroup="PersonalInfoGroup"
errormessage="Enter your name."
runat="Server">
</asp:requiredfieldvalidator>
<br /><br />
<asp:label id="AgeLabel"
text="Enter your age:"
runat="Server"
AssociatedControlID="AgeTextBox">
</asp:label>
 
<asp:textbox id="AgeTextBox"
runat="Server">
</asp:textbox>
 
<asp:requiredfieldvalidator id="RequiredFieldValidator2"
controltovalidate="AgeTextBox"
validationgroup="PersonalInfoGroup"
errormessage="Enter your age."
runat="Server">
</asp:requiredfieldvalidator>
<br /><br />
<!--When Button1 is clicked, only validation
controls that are a part of PersonalInfoGroup
are validated.-->
<asp:button id="Button1"
text="Validate"
causesvalidation="true"
validationgroup="PersonalInfoGroup"
runat="Server" />
<br /><br />
<asp:label id="CityLabel"
text="Enter your city of residence:"
runat="Server"
AssociatedControlID="CityTextBox">
</asp:label>
 
<asp:textbox id="CityTextBox"
runat="Server">
</asp:textbox>
 
<asp:requiredfieldvalidator id="RequiredFieldValidator3"
controltovalidate="CityTextBox"
validationgroup="LocationInfoGroup"
errormessage="Enter a city name."
runat="Server">
</asp:requiredfieldvalidator>
<br /><br />
<!--When Button2 is clicked, only validation
controls that are a part of LocationInfoGroup
are validated.-->
<asp:button id="Button2"
text="Validate"
causesvalidation="true"
validationgroup="LocationInfoGroup"
runat="Server" />
</form>
</body>
</html>