根据文档:
https://github.com/oria/gridx/wiki/Create-the-Simplest-Gridx
Never forget to call grid.startup(), since the column width calculation and layout rendering need to access the geometry information of grid DOM nodes.
如果我的网格包含未指定宽度的列,并且 autoWidth
设置为 false
,则 startup()
会计算列的大小,以便它们水平填充整个视口(viewport)。但是,如果视口(viewport)展开,则会在最后一列之后插入额外的空白空间。如果视口(viewport)变窄,最后一列不会更明显(并且不会渲染滚动)。
所以我认为最好的解决方法是在调整视口(viewport)大小后手动启动列大小的重新计算。但我找不到 API 方法来做到这一点。
如何在现有网格上调用列宽重新计算和布局渲染?
最佳答案
针对这种情况,我所做的是设置一个事件处理程序来监 window 口调整大小事件,然后将宽度设置为当前网格宽度。创建网格时:
function _resizeToWindow(grid, gridId) {
grid.resize({w: dom.byId(gridId).offsetWidth, h: undefined});
}
on(window, "resize", function() {
_resizeToWindow(grid, gridId);
});
将网格大小调整为网格的当前宽度看起来有点奇怪,但是调用该函数将导致网格再次以适合新网格宽度的列宽度呈现。
关于dojo - GridX启动后如何重新计算列宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17807490/