拖放不适用于ag-grid-angular

时间:2018-11-09 06:38:07

标签: angular drag-and-drop ag-grid

我在透视模式下使用ag网格角。我面临的问题是无法将行,值和列areads中的列拖放。我可以通过ts文件在这些区域中添加列,但不能通过拖放从UI中添加列。我可以从这些区域中删除任何列,但不能添加和列。这是AG代码。

<ag-grid-angular #agGrid
                 style="width: 90%; height: 500px; margin-top: 30px;"
                 id="myGrid"
                 [rowData]="rowData"
                 class="ag-theme-balham"
                 [columnDefs]="columnDefs"
                 [enableColResize]="true"
                 [enableSorting]="true"
                 [sideBar]="sideBar"
                 [defaultColDef]="defaultColDef"
                 [pivotMode]="true"
                 [statusBar]="statusBar"
                 [enableRangeSelection]="true"
                 enableRowGroup="true"
                 dragAndDrop =" true"
                 [animateRows]="true"
                 (gridReady)="onGridReady($event)"></ag-grid-angular>

任何人都可以告诉我我在这里想念的东西。

柱塞喜欢类似的问题:https://plnkr.co/edit/xtPbAztpG14bleAF9bgy?p=preview

2 个答案:

答案 0 :(得分:2)

在ag-grid模式下,您不能拖放该行。但是,您可以通过在鼠标悬停(鼠标悬停)上动态添加draggable = true来使行可拖动,从而通过dom获取单元格ID并将其设置为可拖动。

A simple code would be

    // This method is used to handle the drag row functionality in ag-grid. It adds the draggable event to rows in grid.
    this.gridOptions.onCellMouseOver = (dragEvent: any) => {
      if (dragEvent.event.target && dragEvent.event.target.offsetParent.classList.contains('ag-row')) {
        dragEvent.event.target.offsetParent.setAttribute("pdraggable", "data");
        dragEvent.event.target.offsetParent.setAttribute("draggable", "true");
        //dragStart event needs to be added as firefox is not reading draggable=true without this.
        //https://salesforce.stackexchange.com/questions/214613/draggable-true-is-not-working-in-firefox-for-lightning-component
        dragEvent.event.target.offsetParent.addEventListener('dragstart', (event: any) => {
          event.dataTransfer.setData('data', 'data');
        }, true);
        this.draggedRow = dragEvent.data;
      }
      this.draggedRow = dragEvent.data;
    };
  }

答案 1 :(得分:0)

此答案适用于所有面临相同问题的人... Ag-grid inbuild提供此功能 请在下面参考...

https://www.ag-grid.com/javascript-grid-side-bar/