在网格更新/刷新上防止ExtJS网格中图像的“闪烁”

时间:2012-07-13 20:48:35

标签: extjs extjs4

我通过使用返回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 + '">';
      }
    }
  ]
});

1 个答案:

答案 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;"';
      }
    }
  ]
});