Есть код типа:

var Offset = Ext.get(OffsetId);

var BackgroundColor = "#FFFFFF";

if (OffsetValue > 10) { BackgroundColor = "orangered"; }

if (OffsetValue >= -10 && OffsetValue <= 10) { BackgroundColor = "Gold"; }

if (OffsetValue < -10) { BackgroundColor = "LimeGreen"; }

Offset.setStyle("background-color", BackgroundColor);

красит отлично и все было бы прекрасно если бы поля не были во вкладке. При переходе в другую вкладку и возврате поля перерисовуются, что ли и цвет слетает(

Как подписаться на событие прорисовки, или как сделать цвет постоянным? Может можно задать класс и повесить его в атрибут? а его менять уже? Как это можно реализовать?

Нравится

2 комментария

Добрый день

Вам нужно ловить момент после перерисовки, а то в dom еще не будет элемента.

Есть событие afterrender и afterrerender. Первое срабатывает при первом рендера, а второе при "повторных" (смена активной вкладки на странице)

"operation": "merge",
"name": "ClosureCode",
"values": {
	"afterrender": {"bindTo": "renderComponent"},
	"afterrerender": {"bindTo": "renderComponent"}
}

А в методе renderComponent уже сделать то, что вам нужно

Артем Гура, Работает! Благодарю!

 

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

Доброго времени суток.

Столкнулся с такой проблемой.
Задача: мониторить пропущенные звонки. На таймере раз в 5 минут шлю запрос на выборку пропущенных звонков и меняю caption закладке:

pgMissedCalls.BeginUpdate();
pgMissedCalls.Caption = "Пропущеные (" + Dataset.RecordsCount + ")";
pgMissedCalls.EndUpdate();

пробовал по-разному, но проблема остается.
Прорисовка caption происходит только, если мышкой по нему повозить или поставить фокус... Может есть что-то типа Repaint() как у грида или можно как-то без установки фукуса "передернуть" вкладку?

Версия 3.2.

Нравится

2 комментария

Юрий, а зачем BeginUpdate/EndUpdate делаете? В случае одной строки между ними никакого выигрыша скорее всего не получите. Э это может решить проблему.

BeginUpdate/EndUpdate - это одна из попыток заставить работать. Без этого тоже самое, что и с этим...
Проблему решил "миганием" появляющегося lable. Как ни странно, но с периодичной сменой цвета у lable все ок.

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