使用 Dojo,我设置了一个链接到数据存储的网格。网格加载后,我有一个连接函数,它遍历行并根据单元格的值设置行文本颜色。这很好用(下面复制的代码)。
var gagrid = new dojox.grid.EnhancedGrid({
query: {
Keyword: '*'
},
store: gastore,
structure: galayout,
escapeHTMLInData: false,
plugins: {
nestedSorting: true
}
},
document.createElement('div'));
dojo.connect(gagrid, 'onStyleRow', this, function(row) {
var item = gagrid.getItem(row.index);
if (item) {
var value = gagrid.store.getValue(item, "Performance", null);
if (value == 3) {
row.customStyles += "color: green;";
} else if (value == 2) {
row.customStyles += "color: red;";
}
}
gagrid.focus.styleRow(row);
gagrid.edit.styleRow(row);
});
在使用 store fetch 功能的页面/网格加载(通过用户交互)之后,我有了一些功能。它遍历我的网格存储的行并根据用户输入更改单元格的值。同样,这工作正常,网格中的值已正确更新。代码如下。
gastore.fetch({
query: {Keyword: '*'},
onComplete: function(items, request){
var i;
for (i = 0; i < items.length; i++) {
var item = items[i];
var performance;
if(parseInt(items[i]["Visits"])>=rp)
{
if(parseInt(items[i]["Bounce"])<=rb&&parseInt(items[i]["Time"])>=rmp)
{
performance=3;
}
else
{
performance=2;
}
}
else
{
performance=1;
}
gastore.setValue(item,"Performance",performance);
}
}
});
但是,一旦更新了值,自定义样式不会立即应用于行。例如,一行的文本颜色在应该变为黑色时保持绿色。
一旦与网格交互(例如,对列进行排序),行颜色就会更新为正确的颜色。
有什么方法可以在调用 store fetch 函数后直接触发网格行的正确自定义样式?
抱歉,如果我的问题有点啰嗦-只是想我会尝试充分解释这个问题:)