Ich habe ein einfaches Ag-Grid in einem Angular) - Projekt und möchte die Auswahl von Zellen in einer seiner Spalten deaktivieren. Es wäre auch in Ordnung, einfach den blauen Standardumriss während der Auswahl zu entfernen. Ich möchte nur nein Visuelle Änderung der Zelle, wenn der Benutzer darauf klickt. Wie kann ich das tun?
Ich sehe, dass ColDef
eine Eigenschaft suppressNavigable
hat, die irgendwie hilft, da es nicht erlaubt, die Zellen mit der Tabulatortaste auszuwählen, aber es erlaubt trotzdem die Auswahl durch Klicken. Auch das Gitter selbst scheint suppressCellSelection
zu bieten, aber es scheint nicht granular genug zu sein und scheint sowieso nichts zu beeinflussen.
Wie kann ich diese blaue Randzellenauswahl entfernen?
Hier ist der Code, den ich für diese Spaltendefinitionen habe:
this.columnDefs = [
{ headerName: 'One', field: 'one' },
{ headerName: 'Two', field: 'two' },
{
// I want to disable selection of cells in this column
headerName: 'I want no cell selection!',
field: 'three',
suppressNavigable: true,
editable: false,
}
];
Hier ist ein Beispiel für einen Stackblitz, mit dem ich getestet habe: https://stackblitz.com/edit/aggrid-want-to-disable-cell-selection
Hier ist ein Screenshot des blauen Rahmens, den ich in dieser Spalte nicht sehen möchte:
Beachten Sie, dass, wenn wir
gridOption.suppressCellSelection = true
Wir können die Zellenauswahl für alle Spaltenzellen deaktivieren.Hier geht es um die Frage, ob der hervorgehobene Rand einer bestimmten Spalte nicht angezeigt wird, wenn sie ausgewählt ist.
Sie können dies mit etwas CSS und der Eigenschaft cellClass
von ColDef
erreichen.
Sie müssen unter CSS hinzufügen.
.ag-cell-focus,.ag-cell-no-focus{
border:none !important;
}
/* This CSS is to not apply the border for the column having 'no-border' class */
.no-border.ag-cell:focus{
border:none !important;
outline: none;
}
Und verwende die gleiche Klasse wie cellClass
in ColDef
suppressNavigable: true,
cellClass: 'no-border'
Live-Beispiel: aggrid-want-to-disable-cell-selection
Hiermit wird kein Rand für die Zelle angezeigt, auf die Sie mit einem Mausklick gerade fokussieren.
Ich würde vorschlagen, die Option suppressCellSelection
in gridOptions zu verwenden. Eine CSS-Schnellkorrektur würde ich nicht empfehlen.
this.gridOptions = {
// Your grid options here....
suppressCellSelection: true
};
Sie können diesen CSS-Hack ausprobieren. Keine benutzerdefinierten Flags erforderlich.
.ag-cell-focus, .ag-cell {
border: none !important;
}
Beispiel - https://stackblitz.com/edit/aggrid-want-to-disable-cell-selection-answer?file=src%2Fstyles.css