Изменение при клике по гриду, цвета этой строки в зависимости от значения в строке
Стоит задача.
При клике по строке в детали, исходя из типа справочника в строке грида, брать из системной настройки соответствующий цвет для данного типа и подменять коробочный цвет на свой. Как это можно реализовать?
Пожалуйста не скидывайте пример: https://academy.terrasoft.ru/docs/7-16/developer/front-end_development/…
Я уже разукрасил грид при загрузке. И пробовал маркетплейс модули но там нет такого функционала.
Теперь нужно при клике, выделенную запись красить исходя из её типа.
Стоит полный бандл creatio.
Нравится
Ставим debugmode. В BaseGridDetailV2 устанавливаем дебагер на rowSelected там виден call stack отрисовки таблицы. Выводим в консоль this, видим что там есть свойства rowsStyles, cellsClasses, но они нигде не описаны в документации, если разберетесь можете попробовать использовать их.
В нашем случае нам нужны свойства collectionItemPrefix и model.$ActiveRow зная из мы можем составим полный id элемента строки, к примеру id="ContactAddressDetailV2DataGridGrid-d4dc6c60-2243-4b00-a122-7cb4987c07f6-item-82140c2c-41eb-48bb-97fb-51d0c5e92cfd".
Зная id получаем с помощью Ext.getCmp или обычного js, dom-элемент строки и можете манипулировать его свойствами как хотите.
Ставим debugmode. В BaseGridDetailV2 устанавливаем дебагер на rowSelected там виден call stack отрисовки таблицы. Выводим в консоль this, видим что там есть свойства rowsStyles, cellsClasses, но они нигде не описаны в документации, если разберетесь можете попробовать использовать их.
В нашем случае нам нужны свойства collectionItemPrefix и model.$ActiveRow зная из мы можем составим полный id элемента строки, к примеру id="ContactAddressDetailV2DataGridGrid-d4dc6c60-2243-4b00-a122-7cb4987c07f6-item-82140c2c-41eb-48bb-97fb-51d0c5e92cfd".
Зная id получаем с помощью Ext.getCmp или обычного js, dom-элемент строки и можете манипулировать его свойствами как хотите.
Взял за основу:
https://academy.terrasoft.ru/docs/7-16/developer/front-end_development/…
В методе детали prepareResponseCollectionItem добавил цвет и маркер по условию:
item.customStyle = { "EnteringInitialBalances":"", "--selected-color":"red" };
И через подключенный css добавил цвет при выделении:
.grid-row-selected[style*=Entering-initial-balances] { background-color: var(--selected-color) !important; }
Результат