[转]解决Ext3.0以后版本Gridpanel不能更改列样式的BUG

在EXT3.0后的版本,在GridPanel加载数据时你更改了某一列某一行的数据的显示方式,很奇怪的是当你的Panel渲染后,在前一瞬间你能看到你所改变的显示方式,但马上不见了

如果改成2。0的版本发现没有问题

更改方法如下:

gridPanel = new Ext.grid.GridPanel({
      store: store,
      cm: cm,
      sm: sm(),
      afterRender : function() {
     Ext.grid.GridPanel.superclass.afterRender.call(this);
     var v = this.view;
     this.on('bodyresize', v.layout, v);
     if (this.deferRowRender) {
      //v.afterRender.defer(10, this.view);
     } else {
      v.afterRender();
     }
     this.viewReady = true;
    },
      stripeRows: true,
      frame: true,
      viewConfig: {
          forceFit: true
      }
   });

其中始作俑者就是被注释掉的这一行: //v.afterRender.defer(10, this.view);

也就是说我们现在在建GridPanel时只要加一个这样的属性:

   afterRender : function() {
     Ext.grid.GridPanel.superclass.afterRender.call(this);
     var v = this.view;
     this.on('bodyresize', v.layout, v);
     if (this.deferRowRender) {
      //v.afterRender.defer(10, this.view);
     } else {
      v.afterRender();
     }

他就会把原来的ext-all中的gridpanel中的afterRender 方法给重写掉

这样就不会出现那种问题了

转自:http://hi.baidu.com/dream_zl/blog/item/218a2d31cd79ffa45edf0eb2.html

你可能感兴趣的:(gridPanel)