我通过使用返回HTML标记的列渲染器在ExtJS网格中显示图像。问题是每次更新网格时图像“闪烁”(即消失并重新出现)。有办法防止这种情况吗?以下是我正在做的简化示例:
Ext.create('Ext.grid.Panel', {
title: 'My Grid',
store: myStore
columns: [
{
header: 'Image',
dataIndex: 'imgUrl',
renderer: function(imgUrl, meta, record) {
// Add a mouse-over / tooltip that shows the name
meta.tdAttr = 'data-qtip="' + Ext.String.htmlEncode(record.getName()) + '"';
return '<img src="' + imgUrl + '">';
}
}
]
});
答案 0 :(得分:0)
我发现使用CSS背景图片而不是<img>
标记可以解决问题(仅针对Chrome测试)。例如:
Ext.create('Ext.grid.Panel', {
title: 'My Grid',
store: myStore
columns: [
{
header: 'Image',
dataIndex: 'imgUrl',
width: 16, // The width of the background-image
renderer: function(imgUrl, meta, record) {
// Add a mouse-over / tooltip that shows the name
meta.tdAttr = 'data-qtip="' + Ext.String.htmlEncode(record.getName()) + '"';
meta.tdAttr += 'style="background-image: url(\'' + imgUrl + '\'); background-repeat: no-repeat;"';
}
}
]
});