我有这个网格
{
xtype: 'gridpanel',
id: 'grdSeguimiento',
margin: '20 0 10 0',
width: 1423,
store: 'Solicitud',
viewConfig: {
getRowClass: function(record, rowIndex, rowParams, store) {
console.log(record);
return record.data.get('TIEMPO') == 1 ? 'child-row' : 'adult-row';
},
stripeRows: false
},
columns: [
{
xtype: 'gridcolumn',
hidden: true,
dataIndex: 'TIEMPO',
hideable: false
}
],
plugins: [
{
ptype: 'rowediting',
listeners: {
edit: 'onRowEditingEdit'
}
}
]
}
这个css文件
.child-row .x-grid-cell {
background-color: #ffe2e2 !important;
color: #900;
}
.adult-row .x-grid-cell {
background-color: #e2ffe2 !important;
color: #090;
}
我只希望每一行都有一个基于每行内部值(TIEMPO)的颜色。
但是我得到了
Error: rendered block refreshed at 0 rows while BufferedRenderer view size is 63
在使用css文件之前,网格工作正常。我做了一些研究,但找不到任何有用的东西。
上面的代码不是所有的代码,我使用了渲染器和动作列,但我认为这不是那么重要。
有什么想法吗?
编辑1 :如果我将表格更改为不可排序,则会显示数据但没有任何样式
答案 0 :(得分:2)
有什么想法吗?
您需要更改当前代码而不是
这个record.data.get('TIEMPO')
您需要使用record.get('TIEMPO')
或record.data.TIEMPO
了解更多详细信息,您可以参考此Ext.data.Model get()
。
我在这里创建了一个小型sencha fiddle演示。你可以看到它在这里工作正常。
Ext.create('Ext.data.Store', {
storeId: 'simpsonsStore',
fields: ['name', 'email', 'phone', 'isChecked'],
data: {
'items': [{
'name': 'Lisa',
"email": "lisa@simpsons.com",
"phone": "555-111-1224",
"isChecked": 1
}, {
'name': 'Bart',
"email": "bart@simpsons.com",
"phone": "555-222-1234",
"isChecked": 0
}, {
'name': 'Homer',
"email": "homer@simpsons.com",
"phone": "555-222-1244",
"isChecked": 0
}, {
'name': 'Marge',
"email": "marge@simpsons.com",
"phone": "555-222-1254",
"isChecked": 1
}]
},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Grid row class on basis for row value..',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
viewConfig: {
getRowClass: function (record, rowIndex, rowParams, store) {
return record.get('isChecked') == 1 ? 'child-row' : 'adult-row';
//you can also use
//record.data.isChecked == 1 ? 'child-row' : 'adult-row';
},
stripeRows: false
},
columns: [{
text: 'Name',
dataIndex: 'name',
flex: 1
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone',
flex: 1
}],
height: 200,
// width: 400,
renderTo: Ext.getBody()
});