Перетаскивание не работает на ag-grid-angular - PullRequest
0 голосов
/ 09 ноября 2018

Я использую угловую сетку в режиме поворота. Проблема, с которой я сталкиваюсь, заключается в невозможности перетаскивания столбцов в области строк, значений и столбцов. Я могу добавить столбцы в этих областях из файла TS, но не из пользовательского интерфейса с помощью перетаскивания. Я могу вынуть любой столбец из этих областей, но не добавить и столбец. Вот код 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 голосов
/ 28 ноября 2018

Этот ответ для всех, кто сталкивается с той же проблемой ... Ag-grid inbuild обеспечивает эту функциональность пожалуйста, обратитесь ниже ...

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

0 голосов
/ 09 ноября 2018

В режиме ag-grid вы не можете перетаскивать строки.Однако вы можете сделать строку перетаскиваемой, динамически добавив draggable = true при наведении курсора (mouseover), получить идентификатор ячейки через dom и сделать его перетаскиваемым.

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;
    };
  }
...