看看我写的这个例子,回答另一个dgrid相关问题:http: //jsfiddle.net/phusick/VjJBT/
您正在寻找的 CSS 规则是:
#grid {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: auto;
}
编辑:我认为这可能是dgrid版本问题,所以我将我的更新dgrid到最新版本 0.3.3 并为你的问题创建了一个测试:http: //jsfiddle.net/phusick/5mHTS/。
好吧,这不是版本的问题,并且 0.3.1 和 0.3.3 在调整大小时都可以正常工作BorderContainer,但仅限于 Chrome 和 Firefox。我在 IE9 和 Opera 12.10 中重现了这个问题:

网格需要调用grid.resize()才能正确调整大小,这在 IE9/Opera 中不会在调整大小时BorderContainer发生,但在调整窗口大小时总是会发生。
DijitRegistry解决了这个问题,因为布局组件,比如BorderContainerand ContentPane,在调整大小时会调用resize()它们的所有dijit子级。
因此,无论是子类DijitRegistry还是在网格的父级上dojo/aspect侦听并调用:resizeContentPanegrid::resize()
aspect.after(contentPane, "resize", function() {
grid.resize();
});