如何在网格启动后启动GridX列宽重新计算?

Web*_*vie 2 dojo dojo.gridx

根据文件:

https://github.com/oria/gridx/wiki/Create-the-Simplest-Gridx

永远不要忘记调用grid.startup(),因为列宽计算和布局渲染需要访问网格DOM节点的几何信息.

如果我的网格有列,没有指定宽度,并且autoWidth设置为false,则startup()计算列的大小,使它们水平填充整个视口.但是,如果展开视口,则在最后一列之后插入额外的空白空间.如果缩小视口,则最后一列不再可见(并且不会呈现滚动).

所以我认为最好的解决方法是在调整视口大小后手动重新计算列大小.但我找不到一种API方法来做到这一点.

如何在现有网格上调用列宽重新计算和布局渲染?

小智 5

我为这种情况所做的是设置一个事件处理程序来监视窗口大小调整事件,然后将宽度设置为当前网格宽度.创建网格时:

function _resizeToWindow(grid, gridId) {
  grid.resize({w: dom.byId(gridId).offsetWidth, h: undefined});
}

on(window, "resize", function() {
  _resizeToWindow(grid, gridId);
});
Run Code Online (Sandbox Code Playgroud)

将网格大小调整为网格的当前宽度看起来有点奇怪,但调用该函数将导致网格再次使用适合新网格宽度的列宽进行渲染.