Мат-стол с rowGroup - PullRequest
       1

Мат-стол с rowGroup

0 голосов
/ 17 декабря 2018

В моей Mat-таблице мне нужно отобразить результат, подобный картинке ниже, со строкой, которая задает определенное свойство элементов.

Я следую этому примеру: stackblitz , но в моем случае я сравниваю текущее свойство элемента с предыдущим, и если эти свойства не совпадают, мне нужно показать rowGroup. Я не знаю, правильно ли это с материалом, но вметод, который делает это сравнение, я не смогу получить прецедент.

Метод

isGroup(index, item: AccessLog): boolean {
  if (index == null) return false;
    if (this.accesslogs && this.accesslogs.length > 0) {
      if (index == 0) return true;
      else {
        if (item.remoteAddress == this.accesslogs[index - 1].remoteAddress) {
          return false;
        } else {
          return true;
        }
      }
    }
    return false;
}

HTML

  <table mat-table [dataSource]="accesslogs" class="example-table" matSort (matSortChange)="temp($event)">
    <!-- Number Column -->
    <ng-container matColumnDef="createdDate">
      <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ "accesslogs.table.headers.createddate" | translate }}</th>
      <td mat-cell *matCellDef="let row">{{ row.createdDate | date: ("pattern.datehourmin" | translate) }}</td>
    </ng-container>


    <ng-container matColumnDef="remoteAddress">
      <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ "accesslogs.table.headers.remoteaddress" | translate }}</th>
      <td mat-cell *matCellDef="let row">{{ row.remoteAddress }}</td>
    </ng-container>

    <!-- Created Column -->
    <ng-container matColumnDef="created">
      <th mat-header-cell *matHeaderCellDef mat-sort-header disableClear>{{ "accesslogs.table.headers.useragent" | translate }}</th>
      <td mat-cell *matCellDef="let row">{{ row.userAgent | ellipse: 50 }}</td>
    </ng-container>

    <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
    <tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>

    <!-- Group header -->
    <ng-container matColumnDef="groupHeader">
      <td colspan="999" mat-cell *matCellDef="let row">
        <strong>ip {{ row.remoteAddress }}</strong>
      </td>
    </ng-container>

    <tr mat-row *matRowDef="let row; columns: ['groupHeader']; when: isGroup"></tr>
  </table>

rowgroup

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