我的問題是ExtJS 4中GridPanel中列的渲染器函數。渲染器的記錄應該從我的存儲中加載列表中的一個元素,並且它會執行;但它始終加載列表中的相同元素。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++;
}
}
該代碼適於和刪節。
這裏是一個picture of the result:
通常在網格中的細胞應顯示列表的計元素在我的商店。
任何人都可以幫助我瞭解我做錯了什麼嗎?
抱歉壞格式 – FlorianQo 2014-12-04 13:55:49
我不清楚你如何在這裏配置您的GridPanel,但顯然c是不是你期待它。可能你可以用另一種方式管理'c'? - 您的商店中似乎只有一條記錄,因此您可以從傳遞給渲染器的其他值推斷'c'?例如,傳遞的第四個參數是'rowIndex',第五個參數是'colIndex',所以類似於c =(rowIndex)* 7 + colIndex + 1; (假設你總是連續七天)? – pherris 2014-12-04 15:01:03
我的商店中有更多記錄取決於員工數量。在一行中有7天以上。這取決於一個月的長度。 – FlorianQo 2014-12-04 15:09:45