【发布时间】:2015-02-02 10:32:21
【问题描述】:
我的问题是 ExtJS 4 中 GridPanel 中列的渲染器函数。渲染器的记录应该从我的商店加载我的列表中的一个元素,它确实如此;但它总是加载列表的相同元素。
这是我的代码的相关sn-ps。
首先是我的商店:
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++;
}
}
对代码进行了改编和删减。
通常网格中的单元格应显示我的商店中列表的计数元素。
谁能帮我理解我做错了什么?
【问题讨论】:
-
抱歉格式错误
-
我不清楚您在此处如何配置 GridPanel,但显然 c 不是您所期望的。可能你可以用另一种方式管理'c'? - 您的商店中似乎只有一条记录,所以也许您可以从传递给渲染器的其他值推断“c”?例如,传递的第四个参数是“rowIndex”,第五个参数是“colIndex”,所以类似于 c = (rowIndex) * 7 + colIndex + 1; (假设你总是连续 7 天)?
-
我的商店中有更多记录取决于员工人数。一排有超过 7 天。这取决于一个月的长度。
标签: javascript extjs4 renderer