ag-grid: отключить редактирование ячейки при нажатии клавиши и программно включить редактирование строки с помощью кнопки редактирования (Angular 2)

У меня есть кнопка редактирования в каждой строке, и я установил

  defaultColDef: {
    editable: false,
  } 

в настройках сетки

Я хочу, чтобы строка находилась в режиме редактирования, когда я нажимаю кнопку редактирования. Моя кнопка редактирования работает нормально, если я установил

  defaultColDef: {
    editable: true,
  } 

Но он позволяет редактировать нажатия клавиш, чего я не хочу.

Как мне динамически редактировать эту конкретную строку, не устанавливая редактируемое значение true в моем defaultColdef ?

При нажатии кнопки редактирования я включил this.gridOptions.defaultColDef.editable = true, но не повезло!


person Teja Reddy    schedule 17.11.2017    source источник


Ответы (2)


При определении columnDefs укажите editable: false

При нажатии кнопки редактирования для динамического редактирования конкретного столбца/ячейки в строке используйте:

this.GridOptions.columnApi.getColumn('employeeName').getColDef().editable = true;

И после окончания редактирования используйте:

 this.GridOptions.columnApi.getColumn('employeeName').getColDef().editable = false;
person bensonissac    schedule 23.11.2017

Вы можете реализовать метод onCellClicked ag-grid для прослушивания события нажатия кнопки редактирования, а затем использовать метод startEditing, чтобы начать редактирование соответствующей строки. Ниже приведен пример кода:

onCellClicked(value): void {
    if (value.colDef.colId === '<YOUR_EDIT_BUTTON_COL_ID>') {
        this.gridOptions.api.startEditing({
            rowIndex: value.rowIndex,
            colKey: '<col_id_of_first_editbale_col_in_the_row>'
        });
  }
}
person Atif Majeed    schedule 10.07.2018