Используя Dojo, я установил сетку, которая ссылается на хранилище данных. После загрузки сетки у меня есть функция подключения, которая перебирает строки и устанавливает цвет текста строки на основе значения ячейки. Это отлично работает (код скопирован ниже).
var gagrid = new dojox.grid.EnhancedGrid({
query: {
Keyword: '*'
},
store: gastore,
structure: galayout,
escapeHTMLInData: false,
plugins: {
nestedSorting: true
}
},
document.createElement('div'));
dojo.connect(gagrid, 'onStyleRow', this, function(row) {
var item = gagrid.getItem(row.index);
if (item) {
var value = gagrid.store.getValue(item, "Performance", null);
if (value == 3) {
row.customStyles += "color: green;";
} else if (value == 2) {
row.customStyles += "color: red;";
}
}
gagrid.focus.styleRow(row);
gagrid.edit.styleRow(row);
});
У меня есть некоторая функциональность после загрузки страницы / сетки (через взаимодействие с пользователем), которая использует функцию извлечения из магазина. Он проходит по строкам моего хранилища сетки и изменяет значение ячейки в зависимости от ввода пользователя. Опять же, это работает нормально, значения в сетке обновляются правильно. Код ниже.
gastore.fetch({
query: {Keyword: '*'},
onComplete: function(items, request){
var i;
for (i = 0; i < items.length; i++) {
var item = items[i];
var performance;
if(parseInt(items[i]["Visits"])>=rp)
{
if(parseInt(items[i]["Bounce"])<=rb&&parseInt(items[i]["Time"])>=rmp)
{
performance=3;
}
else
{
performance=2;
}
}
else
{
performance=1;
}
gastore.setValue(item,"Performance",performance);
}
}
});
Однако после обновления значений пользовательские стили не применяются к строкам мгновенно. Например, цвет текста в строке остается зеленым, когда он должен измениться на черный.
После взаимодействия с сеткой (например, сортировки столбца) цвета строк обновляются до своих правильных цветов.
Есть ли способ активировать правильные пользовательские стили для строки сетки сразу после вызова функции извлечения из магазина?
Извините, если мой вопрос немного затянут - просто подумал, что постараюсь полностью объяснить проблему :)