Групповая проверка

Элементы проверки могут быть сгруппированы вместе, что позволяет выполнять проверку нескольких элементов управления как единого целого. Группы проверяемых компонентов создаются с помощью элемента . Каждый валидатор в группе выполняет свою проверку независимо от других, но вся группа проходит тестирование как один объект. Если какая?то из проверок в группе терпит неудачу, то неудачу терпит и вся группа. Естественно, с другой стороны, что если все проверки в группе выполнены успешно, то и вся группа считается успешно прошедшей проверку. Группировка особенно полезна, когда по некоторому условию бывает необходимо активировать и деактивировать отдельные наборы валидаторов. В следующем примере демонстрируется, как можно управлять видимостью элементов в случае успешного выполнения проверок во всех условных валидаторах.

Группа проверки имеет метод isValid(), который определяет успех или провал проверки. Он может использоваться в соединении с механизмом привязки данных для отображения сообщения, текст которого зависит от успешного или неудачного прохождения всех проверок в группе. Прежде всего, необходимо создать элемент для отображения сообщения:
?no errors?


Затем нужно связать свойство visible этого элемента с методом группы isValid().


Если все валидаторы в группе успешно выполняют проверку, элемент
становится видимым.


Чтобы сделать элемент
видимым в случае неудачной проверки, используется преобразователь Invert:
(binding dataContext="group" dataPath="isValid" property="visible"
transform="Invert" /)

Теперь, помимо самих валидаторов, у нас отсутствует только одно – собственно группа проверяемых компонентов. Группу представляет элемент . Ей необходимо присвоить идентификатор (предшествующая разметка использует в качестве идентификатора группы значение "group"), а внутри группы определить все элементы формы, которые будут принимать участие в проверке, как показано ниже:




(/associatedControls)


В примере 15.14 приводится код страницы, в которой выполняется групповая проверка.


В странице присутствует элемент
с текстом ?no errors?, который отображается в случае, если все текстовые поля успешно прошли проверку. Для первого текстового поля определен валидатор, проверяющий обязательное заполнение поля, то есть элемент
будет отображаться, только если в это поле были введены какиелибо данные. Второе текстовое поле требует, чтобы введенные данные представляли собой число, являющееся квадратом какого-либо целого числа.

Пример 15.14. Использование групповой проверки на принадлежность диапазону, связанной с меткой
CustomValidationGroup.aspx
<%@ Page Language="C#" %>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1?transitional.dtd"> ASP.NET AJAX


(body)
(asp:ScriptManager ID="ScriptManager1" runat="server")

(asp:ScriptReference Name="PreviewScript.js"
Assembly="Microsoft.Web.Preview" /)

(/asp:ScriptManager)

Anything:
*
(br /)
A square:
*
(br /)


?no errors?



(/body)
.



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела ASP.NET AJAX на эту тему:
Вызов методов
Использование разметки для привязки данных: xm-script
Направление привязки
Обработка событий
Предотвращение возможности отправки формы