标签: mat-pagination

mat-paginator 长度不起作用。无法设置它

我试图在点击分页时调用API。最初,我静态设置了长度,效果很好。我能够进行分页 API 调用。然后我也尝试动态设置长度,它也起作用了,但后来它停止了工作。请帮我指出我的错误。我正在 this.totalEmp 中设置内容的长度,并且也能够在 html 端打印它,但是当我尝试在 mat-paginator 中设置 [length] 时。它对我不起作用。我也尝试在 mat-paginator 中设置 #paginator,但没有看到任何变化。

Below is my implementation



**HTML:**
<mat-paginator 
    [length]="totalEmp"
    [hidden]="normalPagination"
    [pageSize]="2" 
    [pageSizeOptions]="[2]"
    [pageIndex]="pageIndex"
    (page)="pageEvent = getDataByPagination($event)"></mat-paginator>

**.ts file Code**

export class EmpComponent implements OnInit {
 
         dataSource: any;
         totalEmp: number=0;
         normalPagination: boolean;
        
        @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
         @ViewChild(MatSort, { static: true }) sort: MatSort;
        
        ngOnInit() {
            this.getTableContentCount();
          }
        
        
         getTableContentCount() {
            this.myService.CountService().subscribe(
              (response: any) => {
                if (response) {
           
                  this.totalEmp = response;
                  this.getServerData(0,this.totalEmp);
                }
              },
              (error: any) => …
Run Code Online (Sandbox Code Playgroud)

pagination angular-material angular angular9 mat-pagination

4
推荐指数
1
解决办法
8110
查看次数

Mat Paginator 无法在材质表上使用 FormArray

我正在使用带有 formArray 的 mat-table,我还需要 Mat-paginator。

但不幸的是分页不起作用。

Stackbltiz 演示

样本来源,

.html

<form [formGroup]="form">
  <table mat-table [dataSource]="dataSource" formArrayName="dates">
    <!-- Row definitions -->
    <tr mat-header-row *matHeaderRowDef="displayColumns"></tr>
    <tr mat-row *matRowDef="let row; let i = index; columns: displayColumns;"></tr>

    <!-- Column definitions -->
    <ng-container matColumnDef="from">
      <th mat-header-cell *matHeaderCellDef> From </th>
      <td mat-cell *matCellDef="let row; let index = index"  [formGroupName]="index"> 
        <input type="date" formControlName="from" placeholder="From date">
      </td>
    </ng-container>

    <ng-container matColumnDef="to">
      <th mat-header-cell *matHeaderCellDef> To </th>
      <td mat-cell *matCellDef="let row; let index = index"  [formGroupName]="index">
        <input type="date" formControlName="to" placeholder="To …
Run Code Online (Sandbox Code Playgroud)

angular-material angular7 mat-table mat-pagination

3
推荐指数
1
解决办法
2015
查看次数

如何在 Angular 中从父组件访问子组件?

我的mat-paginator子组件如下所示:


子组件.html

<mat-paginator #paginator></mat-paginator>
Run Code Online (Sandbox Code Playgroud)

我想使用@ViewChild()如下所示从父组件获取此分页器:


父组件.html

<child 
    <!-- code omitted for simplicity -->
>
</child>
Run Code Online (Sandbox Code Playgroud)
***父组件.ts***
@ViewChild('paginator') paginator: MatPaginator;

resetPaginator() {          
    this.paginator.firstPage();
}
Run Code Online (Sandbox Code Playgroud)

但由于this.paginator未定义,我无法访问子组件中的分页器。我不确定如何从父级访问分页器。一种方法可能是使用以下方法,但如果有一种优雅的方法,我会更喜欢它。任何想法?

@ViewChild(ChildComponent) child: ChildComponent;
Run Code Online (Sandbox Code Playgroud)

javascript angular-material angular mat-table mat-pagination

3
推荐指数
1
解决办法
2万
查看次数

mat-paginator 在 ng-template 中不起作用

我有一些带有 mat-paginator 的 mat-table,如下所示:

\n
                 <table mat-table style="width: 100%;" [dataSource]="dataSource">\n                    <ng-container matColumnDef="evento">\n                        <th mat-header-cell *matHeaderCellDef> Evento </th>\n                        <td mat-cell *matCellDef="let row"> {{row.evento}} </td>\n                    </ng-container>\n                    <ng-container matColumnDef="fecha">\n                        <th mat-header-cell *matHeaderCellDef> Fecha </th>\n                        <td mat-cell *matCellDef="let row">{{row.fecha}} </td>\n                    </ng-container>\n                    ..... more columns .....\n                    <ng-container matColumnDef="edit">\n                        <th mat-header-cell *matHeaderCellDef style="text-align: right; margin-right: 8px;"> Edit </th>\n                        <td mat-cell *matCellDef="let row" style="text-align: right;">\n                            <button mat-icon-button (click)="editEvent(row)">\n                                <mat-icon>edit</mat-icon>\n                            </button>\n                        </td>\n                    </ng-container>\n\n                    <tr mat-header-row *matHeaderRowDef="displColumns"></tr>\n                    <tr mat-row *matRowDef="let row; columns: displColumns"></tr>\n                </table>\n                <mat-paginator [pageSize]="5" [pageSizeOptions]="[5, 10, 20]" …
Run Code Online (Sandbox Code Playgroud)

angular mat-table mat-pagination

1
推荐指数
1
解决办法
1281
查看次数