首页 > 解决方案 > 如何在 aAG Grid(ag-grid)中使一行有条件地可拖动?

问题描述

将 AG Grid 与 Angular 一起使用,并想知道如何使行有条件地可拖动。例如,如果我们只想使选定的网格行可拖动,应该如何实现。

StackBlitz 示例在这里

请指教。

标签: angularag-gridag-grid-angular

解决方案


根据文档:https ://www.ag-grid.com/javascript-grid/row-dragging/#enabling-row-dragging

rowDragcallback 函数有如下接口:

// 启用/禁用 RowDrag 函数 rowDragFunction(params: RowDragCallbackParams) => boolean;

// 参数接口 interface RowDragCallbackParams { node: RowNode; 数据:任何;列:列;colDef:ColDef;上下文:任何;api:网格API;列API:列API;}

所以你应该提供一个回调到rowDrag. 要确定是否选择了一行,您可以调用node.isSelected()

rowDrag: params => params.node.isSelected(),

选择一行时,您需要通过致电事件来刷新Rowdragapi.redrawRows回调selectionChanged

  onSelectionChanged(event) {
    this.gridApi.redrawRows();
  }

在这里看到这个实现:https ://stackblitz.com/edit/ag-grid-angular-hello-world-cmda8j?file=src%2Fapp%2Fapp.component.ts


推荐阅读