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

Dojo 如何在网格启动后启动GridX列宽重新计算?,dojo,dojo.gridx,Dojo,Dojo.gridx,根据文件: 永远不要忘记调用grid.startup(),因为列宽 计算和布局渲染需要访问几何体 网格DOM节点的信息 如果网格中有未指定宽度的列,并且autoWidth设置为false,startup()计算列的大小,使它们水平填充整个视口。但是,如果展开视口,并在最后一列之后插入额外的空白。如果视口变窄,最后一列将不再可见(并且不会渲染任何滚动) 因此,我认为最好的解决方法是在调整视口大小后手动启动列大小的重新计算。但我找不到API方法来实现这一点 如何在现有网格上调用列宽重新计算和布局渲

根据文件:

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

如果网格中有未指定宽度的列,并且
autoWidth
设置为
false
startup()
计算列的大小,使它们水平填充整个视口。但是,如果展开视口,并在最后一列之后插入额外的空白。如果视口变窄,最后一列将不再可见(并且不会渲染任何滚动)

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


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

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

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

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

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

我只需将gridId更改为网格父容器节点,因为原始DOM元素已清空,并且它的工作方式很好。