Look at this example I wrote answering another dgrid
related question: http://jsfiddle.net/phusick/VjJBT/
The CSS rule you are looking for is:
#grid {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: auto;
}
EDIT: I thought it might have been a problem of dgrid
version, so I updated my dgrid
to the latest version 0.3.3 and created a test for the issue of yours: http://jsfiddle.net/phusick/5mHTS/.
Well, it was not the issue of versions and both 0.3.1 and 0.3.3 works fine when resizing BorderContainer
, but only in Chrome and Firefox. I reproduced the issue in IE9 and Opera 12.10:
The grid needs to invoke grid.resize()
to resize properly, which does not happen in IE9/Opera, when resizing BorderContainer
, but happens always when you resize the window.
DijitRegistry
fixes the issue, because layout components, like BorderContainer
and ContentPane
, call resize()
on all their dijit children when resized.
So either subclass DijitRegistry
or dojo/aspect
listen for resize
on parent ContentPane
of the grid and invoke grid::resize()
:
aspect.after(contentPane, "resize", function() {
grid.resize();
});
dgrid-header
class row does not have a set width. However, in my code, Dojo seems to add astyle="width: XXXpx;"
to thatdiv
tag (it is not hardcoded by me). When the window resizes, this fixed width is updated, but when the splitter is moved, the fixed width is not updated. Any idea why it is setting a fixed width? – Stauffer