Программная проверка

Декларативный подход прекрасно зарекомендовал себя на практике, однако существует и программный подход к проверке данных (который добавляет проверку во время исполнения).

Впрочем, и при таком подходе по?прежнему требуется выполнить некоторые объявления, такие как показаны в следующем фрагменте:

associatedControl="TextBox1" />
Валидатор можно создать с помощью программного кода JavaScript.

Для этого необходимо пройти два этапа:
1. Добавить валидатор: element.get_validators().add(validator).
2. Если вы предполагаете использовать функцию обратного вызова (которая вызывается, когда возникает потребность в выполнении проверки), используется синтаксис: element.add_validated(function). Невозможно сделать доступным для проверки элемент с помощью обычной операции new Sys.Preview.UI.XXX. Вместо этого необходимо использовать несколько непривычный синтаксис, который будет представлен в ходе обсуждения реализации предотвращения отправки формы:
var textbox = $get("TextBox1").control;

Сначала мы отыскиваем элемент управления (на стороне клиента) с помощью функции $get(), а затем получаем ссылку на него с помощью свойства control.


В примере 15.12 приводится полный код страницы, использующей программный подход к реализации проверки.

В этом примере выполняется проверка обязательного к заполнению поля, которая приводилась в примере 15.7, но на этот раз валидатор добавляется к текстовому полю из программного кода JavaScript.
Пример 15.12. Программный подход к построению собственного валидатора
ControlValidationCustomProgrammatic.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:ScriptManage)


*
(br /)




(/body)


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


Синтаксис объявления собственной функции?валидатора имеет следующий вид:
validator.add_validateValue(validation function);

В примере 15.13 демонстрируется, как можно добавлять валидаторы к полю ввода декларативным и программным способами. Валидаторы, проверяющие наличие данных в поле и тип данных, добавляются декларативно, а авторский валидатор – программно. Результат получается тот же самый, что и в предыдущих примерах.

Пример 15.13. Добавление возможности проверки декларативным и программным способами
ControlValidationRequiredFieldProgrammatic.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)


*
(br /)




(/body)
.



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

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