extjs4 - 从数据库中获取颜色代码,EXTJS 网格行颜色变化动态

  显示原文与译文双语对照的内容

我正在处理一个 EXTJS 网格,它的行颜色将根据表的( 状态字段) 值设置。

用户可以编辑行的字段,单击更新后,行的颜色将根据该行的状态字段值设置更改。

我需要在 table 中从设置行 background 颜色。

当前我正在设置不同的css类,使用以下代码检查状态字段值。


getRowClass: function(record, rowIndex, rp, ds)
{
 if( record.get('status') == 'xxxxx' )
 {
 return 'status-xxxxx';
 }
 else if( record.get('status') == 'yyyyy' )
 {
 return 'status-yyyyy';
 }
 else
 {
 return 'status-zzzzzz';
 }
}

我在商店里有颜色,每行的状态值。

但是我需要从数据库中提取颜色并设置为行背景。

谁能帮我做到这一点。

谢谢

时间: 作者:

如果要用作行记录的行 background-color 颜色,则必须在呈现行之后设置每行td元素的背景色。

你可以在 refresh 事件中进行这样的操作,因这里在网格配置中应该定义如下内容:


viewConfig: {
 listeners: {
 refresh: function(view) { 

//get all grid view nodes
 var nodes = view.getNodes();

 for (var i = 0; i <nodes.length; i++) {

 var node = nodes[i];

//get node record
 var record = view.getRecord(node);

//get color from record data
 var color = record.get('color');

//get all td elements
 var cells = Ext.get(node).query('td'); 

//set bacground color to all row td elements
 for(var j = 0; j <cells.length; j++) {
 console.log(cells[j]);
 Ext.fly(cells[j]).setStyle('background-color', color);
 } 
 }
 } 
 }
}

使用实时示例:https://fiddle.sencha.com/#fiddle/2m8

作者:
...