gpt4 book ai didi

angular - 按日期过滤 TurboTable

转载 作者:行者123 更新时间:2023-12-03 22:44:41 24 4
gpt4 key购买 nike

我有一个简单的 TurboTable,我在其中显示了一些数据,包括日期。

<p-table [value]="boxes" #dt>
<ng-template pTemplate="header" let-columns>
<tr>
<th pSortableColumn="Number">
Number
<p-sortIcon field="Number"></p-sortIcon>
</th>
<th pSortableColumn="DateInserted">
Interted at
<p-sortIcon field="DateInserted"></p-sortIcon>
</th>
</tr>
<tr>
<th>
<!-- Here is input to filter number -->
</th>
<th>
<!-- Here I want to use Calendar component to select date range -->
<p-calendar
[(ngModel)]="date"
selectionMode="range"
[readonlyInput]="true"
dateFormat="dd.mm.yy"
(onSelect)="onDateSelect($event)">
</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-box>
<tr [pSelectableRow]="box">
<td>{{box.Number}}</td>
<td>{{box.DateInserted | date}}</td>
</tr>
</ng-template>
</p-table>

目前,Turbo Table 只提供了几种用于过滤器的匹配模式(“startsWith”、“contains”、“endsWith”、“equals”和“in”)。有没有按日期或日期范围过滤的选项?

我想使用 Calendar 组件来选择一个日期范围,然后按这些日期过滤数据。我正在使用 Date 对象(我在带有 DatePipe 的 Table 中显示)。
现在这些匹配模式都没有提供正确比较日期对象的选项。

解决方法是将日期存储为字符串,然后过滤工作。但这不是完美的解决方案,因为它会在将日期转换为字符串时产生问题,而且日期格式在任何地方都必须相同。那么也许有更好的选择来在 TurboTable 中实现按日期范围过滤?

最佳答案

组件.html

<p-calendar 
[(ngModel)]="date"
selectionMode="range"
[readonlyInput]="true"
dateFormat="dd.mm.yy"
(onSelect)="dt.filter($event, 'DateInserted', 'myCustomFilter')">
组件.ts
PrimeNG 8.0.3 及更高版本

error TS2339: Property 'filterConstraints' does not exist on type 'Table'


filterConstraints 在提交 658507f 中被替换, 与 FilterUtils.
import { Table } from 'primeng/table';
//angular 8 import { FilterUtils } from "primeng/api";
//angular 9 import { FilterUtils } from "primeng/utils";
import { FilterUtils } from "primeng/api";
...
@Component({...})
export MyComponent implements OnInit {
@ViewChild('dt') private _table: Table;
ngOnInit(){
FilterUtils['myCustomFilter'] = (value, filter): boolean => {
return value.getTime() == filter.getTime();
}
}
}
PrimeNG 8.0.2 及更低版本
import { Table } from 'primeng/table';
...
@Component({...})
export MyComponent implements OnInit {
@ViewChild('dt') private _table: Table;
ngOnInit(){
this._table.filterConstraints['myCustomFilter'] = (value, filter): boolean => {
return value.getTime() == filter.getTime();
}
}
}

关于angular - 按日期过滤 TurboTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49551003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com