web-dev-qa-db-ja.com

agグリッドの一部の行のみの編集を無効にする方法

条件に基づいてag-grid(例:2/5)の一部の行のみを有効にしたい。

editable:falseは、私が知らないメソッドがある場合を除いて、リスト全体に適用されるため、役に立ちません

助けてください

6
L.E

functioneditablecolumnDefプロパティにバインドするだけで、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)-外部関数へのアクセスのため

8
un.spike

gridApistopEditing()メソッドを呼び出すには、条件をチェックした後、_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-editing/#example-cell-editing

3
Paritosh