как отключить редактирование только для некоторых строк в сетке - PullRequest
0 голосов
/ 10 мая 2018

я хочу включить только несколько строк в моей ag-сетке (пример: 2/5) на основе условия.

editable: false не может помочь, потому что он применяется ко всему списку, если только еслиесть метод, который я не знаю

любая помощь, пожалуйста

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Вы можете просто привязать function к editable свойству в columnDef, которое будет выполняться при каждой попытке edit

editable: this.checkEditFunction.bind(this)
...
checkEditFunction(params){
    //params.node - for row identity
    //params.column - for column identity
    return !params.node.isRowPinned() // - just as sample
}

.bind(this) - только для доступности внешних функций

0 голосов
/ 11 мая 2018

Вы можете вызвать stopEditing() метод gridApi после проверки условия - сохранение editable: true.

Предположим, вы редактируете строку,

(rowEditingStarted)="onRowEditingStarted($event)"

Затем в вашем компоненте вы можете остановить редактирование на основе проверки, как показано ниже.

private onRowEditingStarted($event) {
  if(!$event.data.propertyToCheck == <someCondition>) {
    this.gridApi.stopEditing();
}

Обновление:

Вам нужно будет обновить шаблон для события редактирования.

<ag-grid-angular #agGrid
  ....
 (rowEditingStarted)="onRowEditingStarted($event)"
  ....
 ></ag-grid-angular>
</div>

Проверьте этот пример для справки: https://www.ag -grid.com / javascript-grid-cell-edit / # example-cell-edit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...