2

根据文档:

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

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

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

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

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

4

1 回答 1

5

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

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

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

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

于 2013-08-08T19:40:59.267 回答