Kendo ui 为什么剑道Ui-网格日期排序不正确?

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: {

值为存款金额

**

输出 **

我最近在kendo UI网格中存储了一个应用程序日期排序

在剑道网格中,列名的定义如下

输入值到日期-月、日、年格式。08-23-1991

字段名为日期:

{
    field: "ReinsDepositDate", type: "date", title: "Due Date",format: "{0:M/d/yyyy}", width: 100, filterable: {
              cell: {
                   operator: "contains"  
                    }
            }
},

对日期排序时,其排序基于第一个值

  • 1/12/1994
  • 2015年1月23日
  • 1992年1月13日
  • 意思是当我在上升的时候

  • 1/12/1994
  • 1992年1月13日
  • 2015年1月23日
  • 所以我把模式模型

    尽管如此,我还是得到了同样的结果

     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;
        }
      }