在ExtJS4.2 Grid知识点一:改变表格Grid单元格文字颜色一文中讲解了如何改变单元格中文字颜色,接下来在本章学习如何改变Grid中整行文字的颜色,这样就不需要为每列单独定义renderer函数,显示结果如图片:
实现方式是在Grid中设置viewConfig属性的getRowClass函数,函数参数列表如下:
function changeRowClass(record, rowIndex, rowParams, store){
if (record.get("type") == "1") {
return 'x-grid-record-red';
}
}
核心代码如下:
Ext.define('Itdatum.view.UserList' ,{
extend: 'Ext.grid.Panel',
alias : 'widget.userlist',
title : 'All Users',
store: 'UserStore', /* getRowClass:更改行样式 */ viewConfig:{/*enableTextSelection:true,*/getRowClass:changeRowClass},
initComponent: function() {
this.columns = [
{header: 'Name', dataIndex: 'name', width:100},
{header: 'Idno', dataIndex: 'idno', width:150},
{header: 'Gender', dataIndex: 'type', width:60,renderer : function(v) {return v==1 ? '男' : '女';}},
{header: 'Birthday', dataIndex: 'birthday', width:120},
{header: 'Email', dataIndex: 'email', flex: 1}
];
this.callParent(arguments);
}
});
.x-grid-record-red {
color: red;
}
另外:可以通过指定样式.x-grid-row-over .x-grid-cell-inner来改变鼠标划过时单元格文字变粗,其中必须指定.x-grid-cell-inner,否则效果体现不出来。
.x-grid-row-over .x-grid-cell-inner {
font-weight: bold;
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11984612/viewspace-1254963/ ,如需转载,请注明出处,否则将追究法律责任。