Применить пагинацию к событию cellclick в slickgrid, используя угловой - PullRequest
0 голосов
/ 06 ноября 2019

Загружается скользящая сетка страницы при загрузке, и разбивка на страницы работает, но при щелчке по ячейке обновляется значение набора данных сетки сетки (новые данные добавляются), но значение разбивки на страницы не обновляется (не обновлялPagination). Как снова применить пагинацию к событию клика. backendServiceApi не обновляет счетчик обновленных элементов. Как снова вызвать backendServiceApi с обновленными данными. Я использую метод разбивки на страницы с серверным сервером.

1 Ответ

0 голосов
/ 11 ноября 2019

В вашем вопросе действительно отсутствуют детали, но если вы хотите изменить страницу (нумерацию страниц) после нажатия на ячейку. Теперь вы можете сделать это через новый PaginationService, который я недавно добавил в lib. В коде, который будет

<angular-slickgrid 
    gridId="grid5" 
    [columnDefinitions]="columnDefinitions" 
    [gridOptions]="gridOptions"
    [dataset]="dataset" 
    (onGridStateChanged)="gridStateChanged($event)"
    (onAngularGridCreated)="angularGridReady($event)">
</angular-slickgrid>

, затем в вашем Компоненте

export class MyExample implements OnInit {
  angularGrid: AngularGridInstance;
  columnDefinitions: Column[];
  gridOptions: GridOption;
  dataset = [];

  angularGridReady(angularGrid: AngularGridInstance) {
    this.angularGrid = angularGrid;
  }

  defineGrid() {
    this.columnDefinitions = [
      {
        id: 'action', name: 'Action', field: 'action',  
        onCellClick: (e, args) => {
          // maybe do something with args or args.dataContext?
          this.goToPageNumber(2);
        },
      },
    ];
  }

  goToPageNumber(page: number) {
    this.angularGrid.paginationService.goToPageNumber(page);
  }

  goToFirstPage() {
    this.angularGrid.paginationService.goToFirstPage();
  }

  goToLastPage() {
    this.angularGrid.paginationService.goToLastPage();
  }
}

Если вы хотите сделать это для любого столбца или ячейки, по которым вы щелкнули, вы можете использовать (sgOnClick)="onCellClicked($event.detail.eventData, $event.detail.args)" в вашем представлении изатем в вашем Компоненте onCellClicked(e, args) { ... }

Но это может быть не то, о чем вы просите, опять же, в ваших вопросах отсутствует содержание. Пожалуйста, дайте больше деталей на ваш вопрос и добавьте код. В чем твоя проблема? Также обратите внимание, что разбиение на страницы работает только с BackendServiceApi, которые являются OData или GraphQL (или даже пользовательскими). ​​

О, и я автор Angular-Slickgrid, если у вас нет 'т заметил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...