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, либо отметкой на странице, либо ещё как-нибудь.