【发布时间】:2020-08-04 04:01:19
【问题描述】:
我有一个大约八列的 Angular Material 表,我正在尝试对其进行自定义排序。提出表格时,我希望表格最初根据日期按降序排列的列进行排序。这是我实现的。这是我使用的代码:
@ViewChild(MatSort) sort: MatSort;
getDisbursementsDetails() {
this.claimDetailsService.getDisbursements(this.claimNumber).subscribe(
disbursements => {
let disbursementsDetails = this.buildDisbursements(disbursements);
this.disbursementsDataSource = new MatTableDataSource(disbursementsDetails);
this.disbursementsDataSource.paginator = this.paginator;
this.disbursementsDataSource.sort = this.sort;
this.applySorting(this.disbursementsDataSource);
this.sort.sort(<MatSortable>{id: 'issueDate', start: 'desc'});
}, error => {
console.error(error);
this.disbursementsDetailsSpinner = false;
this.errorHandling(error);
}
)
}
请注意,applySorting 方法与此问题无关。它所做的只是格式化不同列中的日期和美元金额,以便在对它们进行排序时正确排序。
当表格出现时,导致标有“发布日期”的列被预先排序的行是这样的:
this.sort.sort(<MatSortable>{id: 'issueDate', start: 'desc'});
这就是我想要做的。我希望第二列也基于第一个预排序列进行预排序。第二列由文件编号组成。排序将是降序的。它的工作方式是,如果第一列有多个相同的日期,那么对于这些日期,文档编号将按降序排序。
有人知道怎么做吗?
【问题讨论】: