Search code examples
angularangular-materialangular-material-table

Not able to set initial pageIndex in mat-paginator when dealing with large datasets


From this SO post i learned that in order to deal with large datasets you should set dataSource.paginator before dataSource.data in ngAfterViewInit.

However when doing this I am not able to set an initial pageIndex using this.paginator.pageIndex.

https://stackblitz.com/edit/angular-mat-table-v2

When I load my data in ngOnInit and the paginator after this in ngAfterViewInit, I am able to set the initial pageIndex:

https://stackblitz.com/edit/angular-mat-table-v1


Solution

  • You can try this:

      ngOnInit() {
         this.dataSource.paginator = this.paginator;
      }
    
      ngAfterViewInit() {
        setTimeout(() => {
         this.paginator.pageIndex = 3;
         this.todos$.subscribe((todos) => this.dataSource.data = todos);
        }, 0);
      }