Tim*_*ler 4 dojo dijit.layout border-container dgrid
我在BorderContainer中有一个dgrid,启用了"liveSplitters"(使用Dojo 1.8).dgrid很好地出现了,但是当我在左列和"前导"列(dgrid在其中)之间移动拆分器时,dgrid没有正确调整大小.但是,如果我调整窗口大小,那么dgrid会重新调整到适当的大小(即填充BorderContainer的"前导"窗格的100%).
我在CSS中将dgrid设置为100%宽度.有什么方法我需要告诉dgrid在拆分器移动后刷新它的大小?
看看这个例子,我写了一个回答另一个dgrid相关的问题:http://jsfiddle.net/phusick/VjJBT/
您正在寻找的CSS规则是:
#grid {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: auto;
}
Run Code Online (Sandbox Code Playgroud)
编辑:我认为这可能是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解决了这个问题,因为布局组件,比如BorderContainer和ContentPane,在调整大小时调用resize()所有dijit子项.
所以无论是子类DijitRegistry还是dojo/aspect侦听网格的resize父节点ContentPane并调用grid::resize():
aspect.after(contentPane, "resize", function() {
grid.resize();
});
Run Code Online (Sandbox Code Playgroud)