PDA

View Full Version : real full afterrender event?



lfs2008
31 Jul 2012, 1:14 AM
i am having extjs GridPanel


when i load store:


I do Ext.getBody().mask();


Grid 'afterrender' event fires first


Store 'load' event fires second


I attached unmask function to store load 'event'


but there are few moments after that event,
when i see white grid (between unmask and rows populating).


what is the proper way to unmask on real full afterrender event?
i mean - when all rows are rendered.


Thanks

friend
31 Jul 2012, 3:44 AM
A grid will normally do it's own masking automatically. A bug was introduced somewhere around version 4.0.7 of ExtJs which broke this functionality.

Comment out your manual masking and try this override somewhere early on in your application's initialization:



// Fixes bug where Grid load doesn't display an Ajax loading mask.
Ext.override(Ext.view.AbstractView, {
onRender: function() {
var me = this;
this.callOverridden();
if (me.mask && Ext.isObject(me.store)) {
me.setMaskBind(me.store);
}
}
});

lfs2008
31 Jul 2012, 8:08 AM
Thanks a lot!
i put your code in Ext.onReady()..

bot i got an error


Uncaught TypeError: Cannot read property 'AbstractView' of undefined

weird thing is - i do a lot of other overrides - and never got similar errors.
what would you suggest?

thanks!

mankz
31 Jul 2012, 10:50 AM
Please see http://docs.sencha.com/ext-js/4-0/#!/api/Ext.panel.Table-event-viewready