Edw*_*uay 5 grid formatting extjs
我创建了以下ExtJS网格.
我想更改第二行中所有单元格的文本颜色.
但是,我只能找到如何更改所有行中所有单元格的颜色,包括标题文本,如下所示:
var myData = [
[4, 'This is a whole bunch of text that is going to be word-wrapped inside this column.', 0.24, 3.0, '2010-11-17 08:31:12'],
[16, 'Computer2-this row should be red', 0.28, 2.7, '2010-11-14 08:31:12'],
[5, 'Network1', 0.02, 2.5, '2010-11-12 08:31:12'],
[1, 'Network2', 0.01, 4.1, '2010-11-11 08:31:12'],
[12, 'Other', 0.42, 5.0, '2010-11-04 08:31:12']
];
var myReader = new Ext.data.ArrayReader({}, [{
name: 'id',
type: 'int'
}, {
name: 'object',
type: 'object'
}, {
name: 'status',
type: 'float'
}, {
name: 'rank',
type: 'float'
}, {
name: 'lastChange',
type: 'date',
dateFormat: 'Y-m-d H:i:s'
}]);
var grid = new Ext.grid.GridPanel({
region: 'center',
style: 'color:red', //makes ALL text in grid red, I only want one row to be red
store: new Ext.data.Store({
data: myData,
reader: myReader
}),
columns: [{
header: 'ID',
width: 50,
sortable: true,
dataIndex: 'id',
hidden: false
}, {
header: 'Object',
width: 120,
sortable: true,
dataIndex: 'object',
renderer: columnWrap
}, {
header: 'Status',
width: 90,
sortable: true,
dataIndex: 'status'
}, {
header: 'Rank',
width: 90,
sortable: true,
dataIndex: 'rank'
}, {
header: 'Last Updated',
width: 120,
sortable: true,
renderer: Ext.util.Format.dateRenderer('Y-m-d H:i:s'),
dataIndex: 'lastChange'
}],
viewConfig: {
forceFit: true
},
title: 'Computer Information',
width: 500,
autoHeight: true,
frame: true,
listeners: {
'rowdblclick': function(grid, index, rec){
var id = grid.getSelectionModel().getSelected().json[0];
go_to_page('edit_item', 'id=' + id);
}
}
});
Run Code Online (Sandbox Code Playgroud)
如何更改第二行中单元格的文本颜色,我该怎么办?
你想覆盖getRowClass,传递给GridPanel的viewConfig.GridPanel的API文档中提供了一个示例:
viewConfig: {
forceFit: true,
// Return CSS class to apply to rows depending upon data values
getRowClass: function(record, index) {
var c = record.get('change');
if (c < 0) {
return 'price-fall';
} else if (c > 0) {
return 'price-rise';
}
}
},
Run Code Online (Sandbox Code Playgroud)
GridView 包含方法,所以在API中查看更多信息:
getRowClass( Record record, Number index, Object rowParams, Store store )
Run Code Online (Sandbox Code Playgroud)
重写此函数以在呈现期间将自定义CSS类应用于行.您还可以为当前行的行模板提供自定义参数,以使用rowParams参数自定义其呈现方式.此函数应返回将添加到行的换行div的CSS类名称(或空字符串''表示无).要应用多个类名,只需在字符串中返回空格分隔(例如,'my-class another-class').
您可以使用index参数将CSS应用于某一行.
不确定这是否有帮助,但你可以尝试。我在本地尝试过,它确实改变了第二行中所有字符的颜色。
将侦听器添加到网格:
listeners:{
viewready: function(g){
g.getView().getRow(1).style.color="#f30";
}
}
Run Code Online (Sandbox Code Playgroud)
“当 时,您可以使用中的方法viewready获取行的 div 。之后是分配颜色的正常 Javascript(或添加额外的类,如果您愿意)getRow()GridView
干杯
编辑
我意识到如果您的商店远程检索数据,它就不起作用。视图已准备好,但数据尚未准备好。这个方法会失败。
| 归档时间: |
|
| 查看次数: |
11847 次 |
| 最近记录: |