如何根据严重性条件更改数据网格中的行颜色?我是这个 EXTJS 主题的新手。我曾经阅读器读取,存储到存储和写入器写入数据。将所有数据提取到网格后,如何根据严重性条件更改数据网格中的行颜色?你能解释一下我的代码工作吗?
问问题
25364 次
3 回答
23
您可以使用GridView类 ( Ext.grid.GridView ) 来操作网格的用户界面。您还可以查看GridPanel的viewConfig属性。这是一个例子:
viewConfig: {
//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';
}
}
}
ps:示例取自 ExtJS API 文档本身
价格下跌和价格上涨是相应设置背景颜色的 CSS。例如:
.price-fall {
background-color: #color;
}
.price-rise {
background-color: #color;
}
于 2011-02-15T07:03:25.370 回答
4
您可以使用(参见Ext JS API)的getRowClass
方法来完成。GridView
API 文档中引用的示例:
viewConfig: {
forceFit: true,
showPreview: true, // custom property
enableRowBody: true, // required to create a second, full-width row to show expanded Record data
getRowClass: function(record, rowIndex, rp, ds){ // rp = rowParams
if(this.showPreview){
rp.body = '<p>'+record.data.excerpt+'</p>';
return 'x-grid3-row-expanded';
}
return 'x-grid3-row-collapsed';
}
},
于 2011-02-15T06:59:43.677 回答
0
您可以使用列模型中的列渲染器,然后分配一个 CSS 类,如下所示:
所以,customRenderer 函数:
`
function customRenderer(value, metaData, record, rowIndex, colIndex, store) {
var opValue = value;
if (value === "Rejected") {
metaData.css = 'redUnderlinedText';
} else if (value === "Completed") {
metaData.css = 'greenUnderlinedText';
} else if (value === "Started") {
metaData.css = 'blueUnderlinedText';
}
return opValue;
}`
然后你的专栏:
{
header: 'Your Column Header',
dataIndex: 'your_data_index',
renderer: customRenderer
}
那么你的css可能是这样的:
.redUnderlinedText {
background-color: blue,
color: red;
text-decoration: underline;
cursor: pointer;
}
于 2011-02-15T13:26:36.283 回答