我想知道是否有一种方法可以有效地锁定Ag-Grid中的列,以便无论如何该列始终是最后一列。
背景
我最终要寻找的是,如果网格尺寸比所有列宽的总和还要宽,则要避免在最后一列后留空白。这是为了使网格具有一致的专业外观,特别是考虑到偶数/奇数行通常以不同的颜色呈现时。我希望空白区域还具有交替的背景色。
鉴于似乎没有任何网格属性可以强制网格在最后将空白呈现为伪列,因此,我考虑以以下方式手动添加伪列:
sortable: false
实现)resizable: false
实现)suppressSizeToFit: false
除了上面列表中的最后一项,我已经找到了一种实现所有目标的方法。我知道我可以suppressMovable: true
,但是这只能确保该列本身不可拖动,并且不会阻止用户将其拖动到其右侧。
有效地,我正在寻找类似于lockPosition
的东西,但我不想将列锁定在最前面,而是想将列锁定在最末端。
答案 0 :(得分:1)
关注ag-grid待办事项https://www.ag-grid.com/ag-grid-pipeline/中当前打开的AG-3326问题
“允许锁定(lockPosition)一列始终为第一列或最后一列(当前仅支持第一列)”
答案 1 :(得分:0)
我最终要寻找的是如果网格尺寸比所有列宽的总和还要宽,则要避免在最后一列后留空白
您可以对列使用sizeColumnsToFit()
API,以调整大小以适合水平网格。使用此API,最后一列之后将不会有任何空格,但是请确保您未指定至少一列的宽度。这是将扩展/缩小以适合网格大小的列。
在sizeColumnsToFit()
事件触发后调用gridReady
。
答案 2 :(得分:0)
在实施AG-3326之前,这是锁定最右边列的有效解决方法。
onColumnMoved: params => {
const columnCount = params.columnApi.getAllColumns().filter(c => c.isVisible()).length;
const maxIndex = columnCount - 2;
if(params.toIndex > maxIndex) {
params.columnApi.moveColumnByIndex(params.toIndex, maxIndex);
}
}
任何移至“锁定”列右侧的列都将立即移至“锁定”列左侧。