加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

dojo – 在BorderContainer中调整Dgrid大小

发布时间:2020-12-16 21:19:24 所属栏目:百科 来源:网络整理
导读:我在BorderContainer中有一个dgrid,启用了“liveSplitters”(使用Dojo 1.8). dgrid很好地出现了,但是当我在左列和“前导”列(dgrid在其中)之间移动拆分器时,dgrid没有正确调整大小.但是,如果我调整窗口大小,那么dgrid会重新调整到合适的大小(即填充BorderCon
我在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;
}

编辑:我认为它可能是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)在调整大小时调用所有dijit子节点上的resize().

因此,子类DijitRegistry或dojo / aspect监听网格的父ContentPane上的resize并调用grid :: resize():

aspect.after(contentPane,"resize",function() {
    grid.resize();
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读