2012-04-01 4 views
1

У меня есть сетка, которая перенастраивается (данные рефеша) каждые 10 секунд (с AJAX). Таким образом, функция рендеринга вызывается каждые 10 секунд, и у нас есть значение текущей ячейки.ExtJS 4: Среднее значение рендеринга столбцов сетки

Как сравнить значение текущих данных со старыми данными? Или просто, как я могу получить старые данные в функции renderer?

Если у нас нет доступа к старым данным, есть ли другое решение для этого?

Спасибо заранее

ответ

3

После того, как магазин загружен нет никакого способа, чтобы получить старые данные. Одна вещь, которую вы можете сделать, это слушать событие beforeload на кэш-магазин & старые данные:

var oldData; 
myStore.on('beforeload', function() { 
    oldData = myStore.getRange(); // Grabs an array of all current records 
}); 

Отсюда, рендер будет проходить в индексе строки в качестве одного из аргументов, так что вы можете просто сделать сравнение:

renderer: function(v, meta, rec, rowIndex) { 
    var oldRec = oldData[rowIndex]; 
    // do your comparison 
} 

Вам также понадобится обработать случай первой загрузки, где не будет старойData.

+0

Отличное решение Эван, оно работает. Спасибо. – Natasha