ag-grid
具有许多属性:enable*
。列具有许多属性:suppress*
。为该列设置suppress*
会禁用该列的网格上某些enable*
属性的效果。
例如:
var columnDefs = [
{field: 'athlete', suppressMovable: true, width: 150, cellClass: 'suppress-movable-col'},
{field: 'age', lockPosition: true, cellClass: 'locked-col'},
{field: 'country', width: 150}
];
var gridOptions = {
suppressDragLeaveHidesColumns: true,
columnDefs: columnDefs,
defaultColDef: {
width: 100
}
};
在上述示例中,由于suppressMovable:true
,“运动员”列不可移动。其他所有列都是可移动的。
我有一个带有enableRangeSelection: true
的网格
我想防止第一列包含在范围选择中。但是,不存在称为suppressRangeSelection
的列属性。
如何防止用户将第一列包括在范围内?
似乎ag-grid不允许这种行为,但是我设法使用Range Selection API做到了这一点:
var gridOptions = {
columnDefs: columnDefs,
enableRangeSelection: true,
rowData: null,
onRangeSelectionChanged: event => {
var cellRanges = event.api.getCellRanges();
if (!cellRanges || cellRanges.length === 0) return;
var excludeColumn = cellRanges[0].columns.find(
el => el.getColId() === 'athlete'
);
if (!excludeColumn) return;
var rangeParams = {
rowStartIndex: cellRanges[0].startRow.rowIndex,
rowStartPinned: cellRanges[0].startRow.rowPinned,
rowEndIndex: cellRanges[0].endRow.rowIndex,
rowEndPinned: cellRanges[0].endRow.rowPinned,
columns: cellRanges[0].columns
.map(el => el.getColId())
.filter(el => el !== 'athlete'),
};
event.api.clearRangeSelection();
event.api.addCellRange(rangeParams);
},
};