dojo - GridX启动后如何重新计算列宽?

标签 dojo dojo.gridx

根据文档:

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/

相关文章:

java - 如何将 Dojo Data 网格单元格值重定向到另一个页面?

javascript - MIME 类型的文件扩展名

javascript - 处理dojo EdgeToEdgeStoreList事件

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

jquery - Dojo 中相当于 jQuery 范围属性的是什么?

javascript - dojox.form.Rating 未出现在发布数据中

Dojo GridX 带有行标题或行跨度?

javascript - GridX 每行显示相同的数据

javascript - 我们如何在 dojo TreeGrid 中设置子项?