我的组件中有一个角度的Kendo网格,其中填充了基于预定义模型的数据。我正在排序日期'日期'字段(StartTime)。排序时,不会考虑AM / PM,如下面的屏幕截图所示。
理想情况下,突出显示的日期应该是排序顺序中的第三个。
以下是相关的代码段:
型号:
export interface Summary {
...
StartTime: Date;
...
}
排序描述符:
public sort: SortDescriptor[] = [{
field: 'StartTime',
dir: 'asc'
}];
加载网格时调用此语句:
this.gridData = orderBy(this.gridData, this.sort);
我在这里缺少什么?如何将网格排序考虑到AM / PM?
非常感谢任何帮助。
答案 0 :(得分:2)
网格数据项需要包含实际的JavaScript日期对象(而不是字符串表示),以便内置的网格格式化,排序和过滤功能可以按预期工作:
如果数据是从远程服务序列化的,则需要对其进行映射,以便将所有日期字符串转换为实际日期,否则它们将按字符串排序。
以下是数据包含实际日期的示例,它们按预期排序:
{
"ProductID": 1,
"ProductName": "Chai",
"SupplierID": 1,
"CategoryID": 1,
"QuantityPerUnit": "10 boxes x 20 bags",
"UnitPrice": 18,
"UnitsInStock": 39,
"UnitsOnOrder": 0,
"ReorderLevel": 10,
"Discontinued": false,
"Category": {
"CategoryID": 1,
"CategoryName": "Beverages",
"Description": "Soft drinks, coffees, teas, beers, and ales"
},
"FirstOrderedOn": new Date(2018, 4, 2, 18, 46, 53)
}
<kendo-grid-column field="FirstOrderedOn" title="First Ordered On"
width="240" filter="date"
format="{0:MM/dd/yyyy hh:mm:ss a}">
</kendo-grid-column>