最近学习Extjs遇到一个问题,我从JSON数据里读取4个数值型的数据,想在grid里显示5列,前四列是JSON的数据,最后一列是前4个数值的和,请问一下高手,这个功能在前台怎么实现。
[b]问题补充:[/b]
谢谢yourgame提供的答案,还有一个问题,你的代码是实现了横向的相加,我要是要纵向相加的该怎么实现?
帮你实现了.关键是在你的renderer函数怎么写.你可以参考api
Ext.grid.ColumnModel里面的 setRenderer()方法的api
[code="js"]
Ext.onReady(function() {
var myData = [[1, 1, 4, 1], [2, 1, 1, 3], [1, 3, 1, 1], [1, 1, 5, 1], [5, 1, 4, 1], [1, 2, 1, 6]];
var store = new Ext.data.SimpleStore({
fields : [{
name : 'company',
type : 'int'
}, {
name : 'price',
type : 'int'
}, {
name : 'change',
type : 'int'
}, {
name : 'pctChange',
type : 'int'
}, {
name : 'total',
type : 'int'
}]
});
store.loadData(myData);
var grid = new Ext.grid.GridPanel({
store : store,
columns : [{
id : 'company',
header : "Company",
width : 160,
sortable : true,
dataIndex : 'company'
}, {
header : "Price",
width : 75,
sortable : true,
dataIndex : 'price'
}, {
header : "Change",
width : 75,
sortable : true,
dataIndex : 'change'
}, {
header : "% Change",
width : 75,
sortable : true,
dataIndex : 'pctChange'
}, {
header : "total",
width : 40,
renderer : function(value, metadata, record, rowIndex, colIndex, store) {
var obj = record.data;
return obj.company + obj.price + obj.change + obj.pctChange;
}
}],
stripeRows : true,
autoExpandColumn : 'company',
height : 350,
width : 500,
title : 'Array Grid'
});
grid.render(document.body);
});
[/code]
可以用它的renderer方法,计算出值
虽然不是问的偶,偶还是献献丑。
renderer里可以获得record,store的,想怎么处理都行
纵向相加可以看下example里grid部分的一个例子,有个叫total的,可以改造下。。。