如何防止单元格在Ag-grid中双击?

时间:2019-12-12 08:45:18

标签: ag-grid-angular

我想使用cellClicked($event)函数来处理网格中的点击。我需要在同一单元格上禁用多次单击,以防止不必要的后端调用。如果我向onCellDoubleClick($event)注册一个空回调,那么我的问题就解决了,但是我想找到一个更优雅的解决方案。

ag-grid是否可以防止双击整个网格?

this.gridOptions = <GridOptions> {
  ...
  onCellClicked: this.cellClicked.bind(this), // <-- Only one with supstance
  onGridReady: this.onGridReady.bind(this),
  onCellDoubleClicked: this.onCellDoubleClicked.bind(this) // <-- Empty function, feels hacky.
}

1 个答案:

答案 0 :(得分:0)

我通过创建custom component来处理它。

@Component({
  template: `
  <button [disabled]="isDisabled" (click)="invokeParent()"</button>
  `
})

export class ChildComponent implements ICellRendererAngularComp {

  private isDisabled: boolean = false;
  private params: any;
  constructor() {}

  agInit(params: any) {
    this.params = params;
    if (this.params.value === true) {
      this.isDisabled = true;
    }
  }

  public invokeParent() {
    this.params.value === false ? this.isDisabled = true  : this.isDisabled = false;
    this.params.context.ParentComponent.parentMethod(this.params);
  }

  refresh(): boolean {
    return true
  }
}

在父组件中,我创建了一个方法来执行后端调用。