angular - 如何使用 Angular MatSort 和 MatTable
问题描述
我目前正在探索(和学习)Angular。我要做的是在表格上显示数据,然后在用户单击表格标题时对数据进行排序。我正在使用 MatTable 和 MatSort。
我在https://material.angular.io/components上阅读了这些材料
但是,我无法在我的桌子上进行排序。
这是我目前拥有的:
bom-comb-override-list.component.html
<table mat-table matSort [dataSource]="tableDataSrc" class="mat-elevation-z8">
<ng-container matColumnDef="part_no">
<th mat-header-cell *matHeaderCellDef mat-sort-header> PART NO. </th>
<td mat-cell *matCellDef="let element; let i = index">
{{element.part_no}}
<input [(ngModel)]="tableDataSrc[i].user_priority" type="hidden" value="{{element.part_no}}">
</td>
</ng-container>
<ng-container matColumnDef="site_id">
<th mat-header-cell *matHeaderCellDef mat-sort-header> TEST SITE ID </th>
<td mat-cell *matCellDef="let element; let i = index" class="center-text">
{{element.site_id}}
<input [(ngModel)]="tableDataSrc[i].user_priority" type="hidden" value="{{element.site_id}}">
</td>
</ng-container>
<ng-container matColumnDef="bom_id">
<th mat-header-cell *matHeaderCellDef mat-sort-header> BOM_ID </th>
<td mat-cell *matCellDef="let element; let i = index">
{{element.bom_id}}
<input [(ngModel)]="tableDataSrc[i].user_priority" type="hidden" value="{{element.bom_id}}">
</td>
</ng-container>
<ng-container matColumnDef="bom_comb">
<th mat-header-cell *matHeaderCellDef > BOM COMB. # </th>
<td mat-cell *matCellDef="let element; let i = index" class="center-text">
<a [routerLink]="" (click)="_showData(element)" >{{element.bom_comb}}</a>
</td>
</ng-container>
<ng-container matColumnDef="pkg_kit">
<th mat-header-cell *matHeaderCellDef > PACKAGE KIT </th>
<td mat-cell *matCellDef="let element; let i = index" class="center-text">
{{element.pkg_kit}}
</td>
</ng-container>
<ng-container matColumnDef="user_priority">
<th mat-header-cell *matHeaderCellDef> USER PRIORITY </th>
<td mat-cell *matCellDef="let element; let i = index" class="center-text">
<!-- {{element.user_priority}} -->
<input [(ngModel)]="tableDataSrc[i].user_priority" class="form-control form-control-sm"
onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57"
type="number" min=0 value="{{element.user_priority}}">
</td>
</ng-container>
<ng-container matColumnDef="final_priority">
<th mat-header-cell *matHeaderCellDef mat-sort-header> FINAL PRIORITY </th>
<td mat-cell *matCellDef="let element; let i = index" class="center-text">
{{element.final_priority}}
<input [(ngModel)]="tableDataSrc[i].user_priority" type="hidden" value="{{element.final_priority}}">
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="tableColumns"></tr>
<tr mat-row *matRowDef="let row; columns: tableColumns"></tr>
</table>
bom-comb-override-list.component.ts
export class BomCombOverrideListComponent implements OnInit {
@ViewChild(MatSort, {static: true}) sort: MatSort...
ngOnInit(): void {
this.searchForm = this.formBuilder.group({
inPartNum: ['', !Validators.required],
inSiteId: ['', !Validators.required],
inBomId: ['', !Validators.required]
});
this.listAll();
this.dataSource = new MatTableDataSource<BomCombOverride>(this.tableDataSrc);
this.dataSource.sort = this.sort;
}
listAll() {
if(this.submitted) {
var spinRef = this.spinner.start("Loading...");
this.bomCombService.getList(this.part_num.trim(),this.site_id.trim(),this.bom_id.trim())
.pipe(finalize(()=> this.spinner.stop(spinRef)))
.subscribe(
data => {
this.tableDataSrc = data;
},error => this.message = error);
}
}
bom-com-override.service.ts
getList(partNo : string,
siteId : string,
bomId : string) : Observable<any> {
let params = new HttpParams()
.set('part_num', partNo)
.set('site_id', siteId)
.set('bom_id', bomId);
// console.log(this.http.get(`${this.baseUrl}`, { params : params }));
return this.http.get(`${this.baseUrl}`, { params : params });
}
你能给我你的见解吗?我错过了什么?
预先感谢您的意见。
解决方案
推荐阅读
- python - 如何使用构造函数参数运行 Python unittest?
- c# - Automapper:映射从 List 继承的两种类型
>> - azure - 从 powershell 查询中删除括号
- javascript - 如何使用 setInterval 移动具有弹跳效果的对象?
- sqlalchemy - Sqlalchemy 自动加载似乎一次加载多个模式
- c# - 在 ListView 中编辑列项
- java - 将正则表达式与 Java 匹配,显示与 + 号不匹配?
- python - Python List Comprehenion 获取 JSON 值
- java - 计算android studio中的分钟持续时间?
- php - 调试 mongoDB 服务器为什么没有运行的正确步骤是什么?