在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
如果改成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