我的网格中有一个复选框列,根据复选框选择显示是/否。
要求: 如果复选框值==是,请将行颜色更改为绿色 否则保持原样(默认)。
到目前为止我采取的步骤: 在Ext.grid.View上设置getRowClass函数,如下所示:
viewConfig: {
getRowClass: function(record, rowIndex, rowParams, store) {
if (record.get('isApproved') == true)
{
return 'highlight-rowgreen';
}
},
这完全没问题。 但是我想在store.sync回调中实现这一点,目前还没有发生。没有错误,没有。只是不起作用。
var store = Ext.getStore('MyApp.MyStore');
store.proxy.url = MYAPP.globals.url + "myapplication/" + branchNo + "/event/" + branchEventId;
store.sync({
scope: this,
callback:function (records, operation, success) {
if(records.proxy.reader.rawData.success){
// Success. Set the rows color to green if not already done.
alert('Update Completed');
eventsGrid.getView().getRowClass = function(record, rowIndex, rowParams, store){
console.log('I am here');
if (record.get('isApproved') == true)
{
return 'highlight-rowgreen';
}
};
}
else{
alert('Update failed');
}
}
});
我看不到的是我的控制台日志“我在这里”。我可以看到警报信息。
我尝试了其他解决方案,例如this,但没有发生。
感谢任何帮助。感谢
答案 0 :(得分:0)
您不需要在商店同步回调中再次设置rowclass。它应该按原样工作。可能是您的网格视图需要刷新。试试这个..
store.sync({
scope: this,
callback:function (records, operation, success) {
if(records.proxy.reader.rawData.success){
// Success. Set the rows color to green if not already done.
alert('Update Completed');
eventsGrid.getView().refresh(); //refresh grid view
}
else{
alert('Update failed');
}
}
});