PDA

View Full Version : Error in IE when switching to GridPanel tab while loading



jarrod
8 Nov 2006, 3:18 AM
When activating a tab which contains a GridPanel which is still loading its data,
IE throws an error at GridView updateColumns() line 8029.

jack.slocum
8 Nov 2006, 4:33 AM
beta4 build? The reason I ask is there was a href="#" which was removed that could maybe cause one of many IEs inexplicable behaviors.

jarrod
8 Nov 2006, 6:49 PM
Yes, that happened in both the beta3 and beta4 build.

jack.slocum
9 Nov 2006, 1:01 AM
I am guessing it has something to do with offsets not being available because of the "display:none" for an inactive tab. Can you put in yui-ext-debug.js and get it down to a line for me?

I am guessing it is this one:

this.bwrap.setWidth(Math.max(totalWidth, this.wrap.clientWidth));

jarrod
9 Nov 2006, 9:57 PM
Okay, managed to trace down to line 8028:

var width = colModel.getColumnWidth(i);

Width returned was negative for the second column in the grid, and IE throws error when subsequently trying to set the style.width to a negative px value.

jack.slocum
10 Nov 2006, 2:39 AM
Are you using auto column width? If you are you can't do that in a hidden grid.

jarrod
12 Nov 2006, 7:32 AM
Yeap, I extended the grid to call fitColumns() when autoSize() is called.
Hmm.. is autoSize() called for hidden grids?

Meanwhile, lets see now... how do I check that the grid is not hidden before calling fitColumns()...

jack.slocum
12 Nov 2006, 7:45 AM
You could try surrounding the call to fitColumns() with grid.container.beginMeasure()/endMeasure(). It might just be an easy solution.

jarrod
12 Nov 2006, 6:35 PM
Thanks Jack, just tried it - doesn't seem to help.
Meanwhile, no worries though, guess I could add a line after 8028 to check if width is less than zero and do a break out of the for loop.