Web-формы редактирования предназначены для создания и редактирования объектов.
Внешний вид
Внешний вид web-форм редактирования при использовании различных тем можно посмотреть в статье «Выбор темы Web-приложения».
JS API
Для работы с формой редактирования на стороне клиента следует использовать JS API, который представляет собой jQuery плагин (jQuery.icsEditForm
).
Основные возможности:
// Регистрация пользовательского обработчика события сохранения объекта (предпочтительный вариант).
$(function() {
$.icsEditForm.attachEventHandler(function(p) {
if (!condition)
p.stop = true; // Отмена сохранения.
});
});
// Регистрация пользовательского обработчика события сохранения объекта
// с использованием нативных возможностей jQuery.
$(function() {
$('#pageForm').on('onCheckStarts', function(e, p) {
if (!condition1)
e.preventDefault(); // Отмена сохранения (вариант 1).
if (!condition2)
p.stop = true; // Отмена сохранения (вариант 2).
});
});
Подробнее о функции attachEventHandler и добавлении дополнительной логики при сохранении объекта на Web-форме редактирования можно почитать в статье Добавление дополнительной логики при сохранении объекта на Web-форме редактирования.
Список методов
Метод | Описание |
---|---|
save |
Сохранение редактируемого объекта. |
saveAndClose |
Сохранение редактируемого объекта и закрытие страницы. |
formHasChanged |
Проверка, были ли изменена форма. |
resetChangeState |
Метод сброса сохраненного состояния формы. |
askSaveChanges |
Метод для запроса у пользователя необходимости редактирования сохранения документа. Метод является асинхронным. Для проверки результата действия пользователя нужно устаналивать callback. |
Список событий
Событие | Описание |
---|---|
initCompleted.icsEditForm |
Окончание инициализации web-формы редактирования. Срабатывание этого события означает, что значения полей объекта сохранены в web-контролы. |
Конфигурация
Подробнее о конфигурации web-формы редактирования смотри эту статью
Пример использования
Если необходимо подписаться на событие окончания инициализации, необходимо воспользоваться следующим вариантом:
$('#pageForm').on('initCompleted.icsEditForm', function () {
alert('Init completed!!!')
});
Валидация данных
Валидация данных происходит в несколько этапов.
-
Во-первых, нужны по-максимуму клиентские валидаторы (jQuery). Эти валидаторы должны блокировать отправку формы на сервер, если что-то не заполнено или заполнено неправильно (так мы снижаем нагрузку на сервер и увеличиваем отзывчивость и интерактивность приложения). Если это простой
required
, то можно использовать ASP.NET-валидатор с включенным клиентским обработчиком – тогда jQuery-валидаторы не нужны. Главное правильно указатьValidationGroup
. -
После клиентских валидаторов нужно использовать серверные и разместить на форме ValidationSummary, в который надо выводить красивые сообщения об ошибках.
-
Третий рубеж – бизнес-сервер. Он тоже нужен, так как логика может быть не только на форме и проверять её, как правило, надо всегда. Форма, в отличие от остальных потенциальных «вызывальщиков», ответ от бизнес-сервера должна преобразовать в понятный вид и показать пользователю. Для этого рекомендуется обработать отличным от стандартного образом событие сохранения объекта в методе
Save
иSaveAndClose
через блокаtry-catch
. Вcatch
поймать сообщение от бизнес-сервера (желательно типизированное) и сообщить пользователю о проблемах. Это можно сделать либо через сообщение в WebErrorBox, либо отметкой на странице, либо ещё как-нибудь.