Я использую ag-Grid с редактируемым столбцом «Стоимость». Требования указаны ниже:
- Если пользователь редактирует значение в любой ячейке этого столбца и нажимает клавишу Enter, фокус должен переместиться в ячейку ниже в том же столбце и превратить ее в режим редактирования (я могу добиться этого без каких-либо проблем)
- Если пользователь редактирует значение в любой ячейке этого столбца и нажимает клавиши Shift + Enter, фокус должен переместиться на ячейку выше в том же столбце и преобразовать ее в режим редактирования.
В сценарии «Shift + Enter» фокус перемещается на ячейку выше и переводит ее в режим редактирования, но фокус также устанавливается на ячейку двумя строками ниже в том же столбце, т.е. две ячейки в столбце теперь имеют фокус, одна в режим редактирования (мне это нужно) и один в режиме без редактирования (у меня этого не должно быть), как показано на изображении ниже
Код в html-файле:
<ag-grid-angular
#agGrid
style="width:100%; height:100vh"
id="myGrid"
class="ag-theme-balham-dark"
[columnDefs]="columnDefs"
[defaultColDef]="defaultColDef"
[singleClickEdit]="true"
[enterMovesDown]="true"
[enterMovesDownAfterEdit]="true"
[autoGroupColumnDef]="autoGroupColumnDef"
[treeData]="true"
[rowData]="rowData"
[groupDefaultExpanded]="groupDefaultExpanded"
[getDataPath]="getDataPath"
(cellValueChanged)="onCellValueChanged($event)"
(keyup)="onKeyUp($event)"
(gridReady)="onGridReady($event)"
>
</ag-grid-angular>
Я использую для этого событие keyup, а код внутри функции onKeyUp в файле компонента:
onKeyUp(e) {
if(e.key === 'Enter') {
if(e.shiftKey) {
this.gridApi.startEditingCell({
rowIndex: (this.gridApi.getFocusedCell().rowIndex - 2),
colKey: this.gridApi.getFocusedCell().column.colId
});
}
else {
this.gridApi.startEditingCell({
rowIndex: this.gridApi.getFocusedCell().rowIndex,
colKey: this.gridApi.getFocusedCell().column.colId
});
}
}
}
Я хочу избавиться от фокуса, установленного на ячейку на две строки ниже фактической ячейки в режиме редактирования, как показано на изображении. Пожалуйста, помогите мне с этим.