Изменение при клике по гриду, цвета этой строки в зависимости от значения в строке

Стоит задача.

При клике по строке в детали, исходя из типа справочника в строке грида, брать из системной настройки соответствующий цвет для данного типа и подменять коробочный цвет на свой. Как это можно реализовать?

 

 

Пожалуйста не скидывайте пример: https://academy.terrasoft.ru/docs/7-16/developer/front-end_development/…

Я уже разукрасил грид при загрузке. И пробовал маркетплейс модули но там нет такого функционала.

Теперь нужно при клике, выделенную запись красить исходя из её типа.

 

Стоит полный бандл creatio.

Нравится

2 комментария
Лучший ответ

Ставим 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;
}

Результат

Показать все комментарии