Kendo ui 为什么剑道Ui-网格日期排序不正确?
值为存款金额 ** 输出 ** 我最近在kendo UI网格中存储了一个应用程序日期排序 在剑道网格中,列名的定义如下 输入值到日期-月、日、年格式。08-23-1991 字段名为日期:Kendo ui 为什么剑道Ui-网格日期排序不正确?,kendo-ui,kendo-grid,kendo-asp.net-mvc,telerik-grid,kendo-ui-grid,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,Telerik Grid,Kendo Ui Grid,值为存款金额 ** 输出 ** 我最近在kendo UI网格中存储了一个应用程序日期排序 在剑道网格中,列名的定义如下 输入值到日期-月、日、年格式。08-23-1991 字段名为日期: { field: "ReinsDepositDate", type: "date", title: "Due Date",format: "{0:M/d/yyyy}", width: 100, filterable: { cell: {
{
field: "ReinsDepositDate", type: "date", title: "Due Date",format: "{0:M/d/yyyy}", width: 100, filterable: {
cell: {
operator: "contains"
}
}
},
对日期排序时,其排序基于第一个值
schema: {
model: {
fields: {
ReinsDepositDate: { type: "date",format: "{0:dd/MM/yyyy}"}
}
}
},
我看过很多小提琴演示,这里什么都不管用为什么:
参考资料:
设计流程:
设计流程是使用AngularHTTP服务通过API从DB获取值,并将响应分配给kendo网格中的数据源。当我使用JSON文件进行演示时,它工作正常。但同样的道理也适用于这里,它意味着不工作。所以我使用自定义javascript进行排序。列:[$scope.grdprmiumDepositocol,–
剑道可排序属性中的自定义javascript将完成此任务。
这部分工作做得很好
{ field: "ReinsDepositDate", format: "{0:MM/dd/yyyy}",type:"date", sortable:{ compare: function (a, b) {
var c = new Date(a.ReinsDepositDate);
var d = new Date(b.ReinsDepositDate);
return c - d;
}`
}}],
我的问题是为什么我要这样做,因为kendo是日期格式的,而且当我尝试使用transport read with JSON文件进行示例演示时,它与kendo格式配合得很好。仍然很混乱。根据提供的信息,不清楚排序是在客户端还是在服务器上执行 如果Kendo UI数据源在客户端上进行排序,则应以正确的格式提供日期值,以便Kendo UI将其解析为JavaScript日期对象。可以解析多种不同的格式,但
dd-MM-yyyy
是不是其中之一
下面是一个示例,演示了上面的内容。您将注意到空行,其中的日期尚未解析
通常,建议使用普遍接受的标准序列化日期:
如果在服务器上执行排序,那么剑道UI与问题无关,您应该调试服务器端实现。您可以尝试从响应解析日期
模式:{
解析:函数(响应){
对于(变量i=0;i
希望这有帮助。设计流程是使用angular http服务通过api从db获取值,并将响应分配给剑道网格中的datasource。当我使用json文件进行演示时,它工作正常。但在这里应用它意味着不工作。因此我使用自定义javascript对列进行排序:[$scope.grdprmiumDepositocol,我也尝试过这种不同的格式,但没有任何效果,因为我认为它仍然是字符串,排序在客户端。所以我将自定义javascript
字段:“ReinsDepositorDate”,格式:“{0:MM/dd/yyyyy}”,键入:“date”,可排序:{compare:function(a,b){var c=new Date(a.ReinsDepositDate);var d=new Date(b.ReinsDepositDate);return c-d;
}`是的,您的屏幕截图清楚地表明日期实际上是剑道UI数据源中的字符串。在解决此问题之前,内置排序无法正常工作。您可以将您的实现与剑道UI站点上的示例和此线程中的示例进行比较。我不认为自定义排序是最好的方法,正如您将看到的那样过滤和编辑也有同样的问题。好的,很酷,谢谢你的回复。还有一个困惑,那就是它在这个演示中是如何作为字符串工作的。有没有其他方法可以在这里进行优化。[link]和[link]这些示例中的日期由KendoUI数据源成功解析,因此JavaScript日期对象被构造并在网格中使用
schema: {
parse: function(response) {
for (var i = 0; i < response.length; i++) {
response[i].ReinsDepositDate = kendo.parseDate(response[i].ReinsDepositDate, "dd/MM/yyyy");
}
return response;
}
}