.. _ext_control: extControl ----------------- Это :ref:`внешний компонент`, предназначенный для отображения данных выборки. .. _ext_control_backend_template: .. code-block:: scala :caption: Шаблон серверного кода внешнего компонента class Gs3_ExtControlExampleAbi extends ExtControlAbi { } .. _ext_control_frontend_template: .. code-block:: js :caption: Шаблон клиентского кода внешнего компонента class MyControl { constructor(name) { this.name = name; this.isAttached = false; } init(controlContext) { this.controlContext = controlContext; this.unsubscribeNodeChanges = this.controlContext.extController.subscribeNodeChanges({ onSubscribe(rootNode) {}, beforeVisitModel() {}, beforeVisitNode(pNode) {}, beforeAddToParent(pNode, parentNode) {}, afterLoadNode(pNode) {}, afterVisitNode(pNode) {}, beforeCleanNode(pNode, parentNode) {}, afterVisitModel() {}, beforeConsignmentVersionChange() {}, afterConsignmentVersionChange() {} }); } destroy() { this.unsubscribeNodeChanges(); this.controlContext = null; } attach(parent) { this.controlParent = parent; // Здесь создаём в `composerParent` необходимые HTML-элементы. this.isAttached = true; } detach() { this.isAttached = false; while (this.controlParent.lastChild) this.controlParent.removeChild(this.controlParent.lastChild); this.controlParent = null; } } .. code-block:: xml :caption: Пример кода :term:`Avm` :linenos: .. seealso:: 1. Метаданные :java:type:`ExtControl` 2. Core-интерфейс :java:type:`CoreExtControl` 3. JS-api :java:type:`ExtControl`