Моя проблема - функция рендеринга столбца в GridPanel в ExtJS 4. Запись рендеринга должна загружать элемент из моего списка из моего магазина, и он это делает; но он всегда загружает один и тот же элемент списка.Редактор столбцов ExtJS
Ниже приведены соответствующие фрагменты кода.
Первый мой магазин:
var nStore = Ext.create('Ext.data.Store', {
storeId: 'people',
fields: ['team', 'name', 'liste', 'sums'],
data: [{
team: 'TestTeam', name: 'TestPerson',
liste: ['F', 'F', 'F', 'S', 'N', 'F', 'S',
'S', 'S', 'F', 'F', 'F', 'S', 'A', 'N',
'S', 'S', 'S', 'S', '', '', 'N', 'N',
'N', 'S', 'S', 'N', 'S', 'F', 'N', 'N'],
sums: [[7, 4, 0, 0, 0, 0, 0], [3, 0, 0, 0, 0]]
}]
});
Тогда мой столбец массива, где рендер:
var counter = 0;
for (var i = 0; i < Object.kws.length; i++) {
var DayOfMonth = [];
var DayOfWeek = [];
for (var j = 0; j < Object.kws[i].kwDays.length; j++) {
var c = counter;
DayOfMonth[j] = {
text: '<span style="font-size: 87%;">'
+ Object.kws[i].kwDays[j].day
+ '.<br>'
+ Object.kws[i].kwDays[j].dayOfWeek
+ '.</span>', sortable: false,
draggable: false, menuDisabled: true,
resizable: false, width: 40, align: 'center',
renderer: function (value, meta, record) {
return record.data.liste[c];
}
};
counter++;
}
}
код адаптирован и сокращениями.
Обычно клетки в сетке должны показать подсчитанный элемент списка в моем магазине.
Может ли кто-нибудь помочь мне понять, что я делаю неправильно?
жаль о плохом форматировании – FlorianQo
я не ясно, о том, как вы настраиваете ваши GridPanel здесь, но, очевидно, с не то, что вы ожидайте. Возможно, вы могли бы управлять «c» по-другому? - у вас, кажется, есть только одна запись в вашем магазине, так что, возможно, вы могли бы вывести 'c' из других значений, переданных в renderer? Например, четвертый аргумент передается «rowIndex», а пятый аргумент - «colIndex», поэтому что-то вроде c = (rowIndex) * 7 + colIndex + 1; (при условии, что у вас всегда есть семь дней подряд)? – pherris
есть больше записей в моем Магазине зависит от количества Сотрудников. Есть более 7 дней в одной строке. Это зависит от длины месяца. – FlorianQo