Javascript EXTJS:刷新网格后如何设置网格样式?
我使用以下代码根据网格的内容设置网格样式:Javascript EXTJS:刷新网格后如何设置网格样式?,javascript,extjs,grid,styling,Javascript,Extjs,Grid,Styling,我使用以下代码根据网格的内容设置网格样式: viewConfig: { getRowClass: function(record, rowIndex, rowParams, store){ switch(record.get('status')){ case 'PENDING': return 'row-yellow'; case 'REJECTED': ret
viewConfig: {
getRowClass: function(record, rowIndex, rowParams, store){
switch(record.get('status')){
case 'PENDING':
return 'row-yellow';
case 'REJECTED':
return 'row-red';
}
}
},
但是,通过执行以下操作刷新网格时,无法调用此方法:
grid.reconfigure(cases_store);
我尝试了以下方法,但不起作用
var i = 0, record = '';
while(record = store.getAt(i)){
grid.viewConfig.getRowClass(record,i,{},store);
i++;
}
我怎样才能解决这个问题?
谢谢,下面是我所做的。我相信有更好的解决方案,但这一个有效
var store = grid.getStore();
var nodes = grid.getView().getNodes(), status='';
for(var i = 0; i<nodes.length;i++){ // Looping through the rows
status = nodes[i].cells[5].children.item(0).innerHTML; // Getting the content of the cell on which the styling should be based
if(status == 'REJECTED'){
nodes[i].classList.add('row-red');
}
if(status == 'PENDING'){
nodes[i].classList.add('row-yellow');
}
}
var-store=grid.getStore();
var nodes=grid.getView().getNodes(),状态=“”;
对于(var i=0;i)您的问题不清楚。“但是,当我刷新网格时,我不能调用此方法”是什么意思?每次网格呈现一行时,都会自动调用getRowClass。@当我使用新存储和“重新配置”时,Evantimboli方法,此函数未被调用。也就是说,我刚刚找到了一个解决方案。我正在发布它。您没有发布任何代码,因此您的问题没有提供足够的信息。只是在存储区上循环并将类推送到节点上就掩盖了原始问题,因为一旦网格再次更新,它将处于相同的状态您发布的“解决方案”不是很健壮。@Evantimboli它可以工作,因为此代码是在调用“重新配置”之后执行的。没有说它不工作,只是说它不健壮,您绝对不应该依赖它。正确的解决方法是调用getRowClass,但您没有发布足够的代码。