angular - 表格排序实现
问题描述
我使用ngx-order-pipe库对表格进行排序。问题是上下图标发生变化,排序本身不起作用。它没有给出任何错误。
html:
<table class="centered highlight" *ngIf="filteredMasters.length !== 0" style="cursor: pointer">
<thead>
<tr>
<th [class.active]="order === 'full_name'" (click)="setOrder('full_name')">Full Name <span [hidden]="reverse">▼</span><span [hidden]="!reverse">▲</span></th>
<th [class.active]="order === 'date_work'" (click)="setOrder('date_work')">Date <span [hidden]="reverse">▼</span><span [hidden]="!reverse">▲</span></th>
<th [class.active]="order === 'comment'" (click)="setOrder('comment')">Comment <span [hidden]="reverse">▼</span><span [hidden]="!reverse">▲</span></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody >
<tr *ngFor="let master of filteredMasters | orderBy: order:reverse">
<td>{{master.full_name}}</td>
<td>{{master.date_work | date: 'dd.MM.yyyy'}}</td>
<td>{{master.comment}}</td>
<td><a class="btn-floating btn-small waves-effect waves-light"><i class="fa fa-edit" (click)="onSelectMaster(master)"></i></a></td>
<td><a class="btn-floating btn-small waves-effect waves-light red"><i class="fa fa-trash" (click)="deleteMaster(master)"></i></a></td>
</tr>
</tbody>
</table>
ts:
order: string = 'full_name'
reverse = false
setOrder(order) {
this.order = order;
this.reverse = !this.reverse;
}
解决方案
请在您的管道中添加“不区分大小写”。否则,“ full_name ”、“ comment ”既有大写也有小写,那么你会得到两种排序,一种会得到一堆“小写”和“大写”排序的记录。
将排序字母开始将“小写”然后它将显示以“大写”开头的记录。-- 在DESC排序的情况下
将排序字母开始将“大写”然后它将显示以“小写”开头的记录。-- 在 ASC 排序的情况下
更新后的代码如下。
<table class="centered highlight" *ngIf="filteredMasters.length !== 0" style="cursor: pointer">
<thead>
<tr>
<th [class.active]="order === 'full_name'" (click)="setOrder('full_name')">Full Name <span [hidden]="reverse">▼</span><span [hidden]="!reverse">▲</span></th>
<th [class.active]="order === 'date_work'" (click)="setOrder('date_work')">Date <span [hidden]="reverse">▼</span><span [hidden]="!reverse">▲</span></th>
<th [class.active]="order === 'comment'" (click)="setOrder('comment')">Comment <span [hidden]="reverse">▼</span><span [hidden]="!reverse">▲</span></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody >
<tr *ngFor="let master of filteredMasters | orderBy: order:reverse:'case-insensitive'">
<td>{{master.full_name}}</td>
<td>{{master.date_work | date: 'dd.MM.yyyy'}}</td>
<td>{{master.comment}}</td>
<td><a class="btn-floating btn-small waves-effect waves-light"><i class="fa fa-edit" (click)="onSelectMaster(master)"></i></a></td>
<td><a class="btn-floating btn-small waves-effect waves-light red"><i class="fa fa-trash" (click)="deleteMaster(master)"></i></a></td>
</tr>
</tbody>
</table>
推荐阅读
- sql - oracle sql查询:获取具有相同ID的表中的所有条目作为单独的列
- python-3.x - 在 seaborn 成对箱线图中控制标记属性
- sql - SQL如何将表绑定在一起
- c# - 如何获取 ClickOnce 创建的本地应用程序数据文件夹中文件的路径
- azure - 使用 NGINX Ingress 进行 Kubernetes 角色管理
- angular - 如何在 ProductListComponentService 中修改 pageSize
- active-directory - 使用 Google G Suite 创建分发列表(邮寄列表组)
- java - 循环遍历一个字符串并在 Java 中只返回一个字符
- ubuntu - 由于缺少 liblibxcb-xtest0,无法在 ubuntu 上安装 zoom - 但无法安装?
- wordpress - 如何在 WordPress Woocommerce 中删除或添加产品网格?