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

时间:2013-07-23 10:23:53

标签: dojo dojo.gridx

根据文件:

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

  

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

如果我的网格包含未指定宽度的列,并且autoWidth设置为falsestartup()会计算列的大小,以便它们填充整个视口水平。但是,如果展开视口,则在最后一列之后插入额外的空白空间。如果缩小视口,则最后一列不再可见(并且不会渲染滚动)。

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

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

1 个答案:

答案 0 :(得分:5)

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

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

on(window, "resize", function() {
  _resizeToWindow(grid, gridId);
});

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