Здравствуйте!
Есть следующая задача:
В зависимости от условий в реестре раздела поле отображается либо зеленым, либо красным цветом.
Как можно реализовать данный функционал?
Нравится
Добрый день!
Ниже приведу алгоритм примера реализации, как сделать, чтобы была подсветка записей реестра если у продажи на объекте поле IsNotInterest = true:
1. Создаем метод gridRecolor
gridRecolor: function () { var gridData = this.getGridData(); var items = gridData.getItems(); var loadedObject = {}; Terrasoft.each(items, function (item) { item.customStyle = null; var facilityId = item.get("Facility").value; var opportunityId = item.get("Opportunity").value; var isNotInterest = item.get("IsNotInterest"); //Если условие подходит, меняем цвет записи на темно-серый. if (isNotInterest) { item.customStyle = { 'color' : "darkgrey" } } var primaryValue = item.get(item.primaryColumnName); //Формируем новый набор данных уже с подсветкой loadedObject[primaryValue] = item; }, this); gridData.clear(); //загружаем новый набор данных gridData.loadAll(loadedObject); },
2. Замещаем метод onGridDataLoaded, добавив в него вызов gridRecolor
onGridDataLoaded: function () { this.callParent(arguments); this.gridRecolor(); },
3. Profit!
Дмитрий, ваш пример работает, но мне нужно изменить цвет не у всей записи, а конкретно проверяемой колонки.
"Пащенко Александр Сергеевич" написал:Дмитрий, ваш пример работает, но мне нужно изменить цвет не у всей записи, а конкретно проверяемой колонки.
Для колонки данную функциональность невозможно реализовать на уровне пользователя системы.
Необходимо переделывать базовую логику приложения (ядро).
Добрый день!
Дмитрий, такая функция выделяет нужным цветом текстовое содержимое полей. Скажите пожста, а можно ли выделять цветом не текст, а целый ряд(фон), который соответствует записи? Вот так:
Добрый день!
Такая реализация выделяет цветом текстовое содержимое записи. А можно сделать так, чтобы выделялась цветом весь ряд/запись как фон указанного цвета?
Вильшанский Дмитрий,
можно покрасить просто строку указав
item.customStyle = {
'color' : "black",
'background' : "#33FF33"
}