簡體   English   中英

Angular Material - mat-table 排序行

[英]Angular Material - mat-table sort row

如何根據行對有角度的材料墊表進行排序?,我知道我們可以使用 mat-sort 根據列進行排序,但要求是在雙擊時根據行進行排序。

在此處輸入圖片說明

<ng-container matColumnDef="Measure">
  <th mat-header-cell *matHeaderCellDef>Measure</th>
  <td mat-sort-header class="bold" mat-cell *matCellDef="let element">
      {{ element.name }}
  </td>
</ng-container>

將 mat-sort-header 指令添加到 td 而不是 th,但出現錯誤 - 不能有兩個具有相同 ID(測量)的 MatSortables。

您可以使用Material CDK-Table並設置您想要的任何類型的排序。 查看官方文檔中的示例:

<table matSort (matSortChange)="sortData($event)">
   ....
</table>



sortData(sort: Sort) {
const data = this.desserts.slice();
if (!sort.active || sort.direction === '') {
  this.sortedData = data;
  return;
}

this.sortedData = data.sort((a, b) => {
  const isAsc = sort.direction === 'asc';
  switch (sort.active) {
    case 'name': return compare(a.name, b.name, isAsc);
    case 'calories': return compare(a.calories, b.calories, isAsc);
    case 'fat': return compare(a.fat, b.fat, isAsc);
    case 'carbs': return compare(a.carbs, b.carbs, isAsc);
    case 'protein': return compare(a.protein, b.protein, isAsc);
    default: return 0;
  }
});

}

我有:

displayedColumns: string[] = [
'guest-name',
'rental-name',
'check-in',
'check-out',
'check-in',
'guests',
'total',
'arrival-time',

]

注意簽入重復兩次,導致以下錯誤:

“不能有兩個具有相同 ID 的 MatSortable”

mat-sort-header添加到<th>而不是<td>

我今天也有這個問題,這只是一個愚蠢的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM