Добавление нового свойства элементов управления
Ссылка на GitHub: TemplateDesignerExtension.
Элементы управления обладают набором свойств, которые определяют их поведение в веб-браузере пользователя: внешний вид, получение данных (для разметки карточки), обработка событий.
Когда программист формирует список свойств элемента управления нового типа, он может ссылаться только на существующие стандартные свойства (Стандартные свойства и события элементов управления). Если стандартные свойства не позволяют описать все особенности элемента управления, программист может сформировать новое свойство.
Добавить новое свойство элементов управления в Конструктор Web-разметок можно с помощью Расширения.
Добавление свойства
Чтобы создать расширение, добавляющее новый тип свойств элементов управления, выполните приведенную далее инструкцию.
-
Убедитесь, что установлен Docsvision WebClient SDK (запрашивается через портал ТП).
В этом случае в переменной окружения
DocsvisionWebClientSDK
содержится путь к его папке, например,C:\Program Files (x86)\Docsvision\WebClient\SDK
. -
Создайте проект расширения программы Конструктор Web-разметок.
-
Добавьте в ядро расширения (файл
DesignerExtension.cs
) функцию, предоставляющую описатель свойства элемента управления.Описатель свойства элемента управления — это объект с типом
PropertyDescription
, содержащий информацию о свойстве: название свойства, тип, категория, редактор, который должен использоваться для изменения значения, возможность локализации и настройки значения для определённого типа устройств.PropertyDescription GetSuperPropertyDescription() { var propertyDescription = new PropertyDescription(); propertyDescription.Name = "SuperProperty"; propertyDescription.DisplayName = "Супер свойство"; propertyDescription.Type = typeof(string); (1) propertyDescription.Category = PropertyCategoryConstants.DataCategory; (2) return propertyDescription; }
1 Строковый тип свойства. 2 Указывает категорию свойства ( DataCategory
— Данные).Обратитесь к описанию класса PropertyDescription
, чтобы получить полный перечень возможностей описателя свойства элементов управления. -
Переопределите метод
GetPropertyDescriptions
базового класса, чтобы он возвращал коллекцию с парой: ключ — имя. Возвращаемая коллекция позволяет получить описатель данного свойства. Используйте имя, указанное вpropertyDescription.Name
и метод, предоставляющий описатель свойства в качестве значения:protected override Dictionary<string, PropertyDescription> GetPropertyDescriptions() { return new Dictionary<string, PropertyDescription> { { "SuperProperty", GetSuperPropertyDescription()} }; }
Проверка свойства
-
Добавьте
Супер свойство
в список свойств элемента управления (вPropertyDescriptions
).Для получения описателя свойства используйте метод PropertyFactory.Create
, передав в него имя свойства, указанное при его регистрации в методеGetPropertyDescriptions
.PropertyDescriptions = { PropertyFactory.GetNameProperty(), PropertyFactory.GetVisibilityProperty(), PropertyFactory.Create("SuperProperty"), (1) PropertyFactory.GetClickEvent() (2) }
1 Получаем описатель свойства "SuperProperty". 2 Событие "При щелчке". -
Опубликуйте расширение с элементом управления на сервере Web-клиента.
-
Откройте для настройки любую разметку карточки.
-
Добавьте в разметку элемент управления с новым свойством. В его настройках будет Супер свойство.
Рисунок 1. Свойство элемента управления из расширения в редакторе разметок