我们在使用ng-grid插件时有时候不希望最后一列字段可以拖动,这时候我们使用suppressSizeToFit 和suppressResize 禁用resize 方法:
启用调整大小
通过在网格选项中启用调整大小,为网格调整列大小调整。
如果您只希望某些列可以调整大小,请为网格启用大小调整,然后通过设置suppressResize=true 列定义来禁止调整特定列的大小。
适合大小的列
调用api.sizeColumnsToFit()以使当前可见的列适合屏幕。列将缩放(增长或缩小)以适合可用宽度。
如果您不希望特定列包含在自动调整大小中,请设置列定义suppressSizeToFit=true。例如,如果您希望第一列保持固定,但是所有其他列都要填充表格的宽度,这将非常有用。
自动调整大小的列
就像Excel一样,每个列都可以通过双击标题的右侧而不是拖动它来“自动调整大小”。执行此操作时,网格将计算出最佳宽度以适合列中单元格的内容。
通过仅考虑虚拟渲染的行,网格可以计算出最佳宽度。例如,如果您的网格有10,000行,但由于行的虚拟化而只渲染了50行,那么只有这50个将被考虑用于计算要显示的宽度。渲染的行是您可以通过水平滚动和小缓冲区在屏幕上看到的所有行(默认缓冲区大小为20)。
autoSizeColumns()查看屏幕上渲染的单元格,并根据它看到的内容计算出宽度。它无法查看由于列虚拟化而未呈现的列。因此,无法自动调整屏幕上不可见的列。
列虚拟化是网格用于通过仅渲染由于水平滚动位置而可见的列来渲染大量具有降级性能的列的技术。例如,如果水平滚动仅显示10列,则网格可以具有1000列,仅渲染10列。
要解决此问题,您可以通过设置网格属性来关闭列虚拟化suppressColumnVirtualisation=true。因此,选择是你的 - 你想要什么 - 列虚拟化工作或自动调整大小的屏幕列。