我正在使用primeNg where date='2018-05-01' OR (date='2018-05-02' and TIME(time)<='03:00:00')
为<p-dataTable>
字段实现自定义排序。
行号字段中的值如下:
"Row No:"
来源:https://primefaces.org/primeng/#/table/sort
要对我在以下代码中完成的数据进行排序:
HTML:
9864-3
4738-1
0935-4
2788-2
TS:
<p-dataTable (onSort)="changeSort($event)">
<p-column field="rowNo" header="Row No:" [sortable]="true">{{value}}</p-column>
</p-dataTable>
但这不是没有排序,没有出现任何错误,也没有对数据进行排序。请指导我如何对其中包含changeSort(event) {
if (!event.order) {
this.sortF = 'year';
} else {
this.sortF = event.field;
}
}
的数据进行排序?
答案 0 :(得分:0)
我试图制作一个非常基本的自定义排序功能,该功能可以根据您的规范进行排序
基本上,您可以对数字列表进行排序,例如arr.sort((a,b) => parseInt(a) - parseInt(b))
。但是这里的问题是parseInt会扣除数字,因为9864-3
将得出9861,然后扣除到下一个数字并给出结果。
无论如何,自定义功能是:
data = ["0935-4", "0935-4", "0935-2", "4738-1", "9864-3"];
customSort(data) {
let arr = [];
data.map(c => {
let index = c.indexOf('-');
let d = c.split('');
d.splice(index, 1);
arr.push(d.join(''))
})
arr.sort((a,b) => parseInt(a) - parseInt(b))// ascending
// arr.sort((a,b) => parseInt(b) - parseInt(a)) descending
let temp2 = [];
arr.map(val => {
temp2.push(val.slice(0, 4) + "-" + val.slice(4));
})
this.data = [...temp2];
console.log(this.data)
}
希望这可能对您有所帮助或给您一些想法,使其成为您自己的