Kendo DataSource.filter(date)导致应用程序崩溃

时间:2015-04-19 12:12:35

标签: kendo-ui telerik-appbuilder everlive

我尝试使用日期敏感信息过滤某些数据

如果我选择一个没有日期的日期范围会返回一个空的结果数组,那么应用程序不会崩溃,但只要有数据包含FilterDate和gte的范围(因此,在filterDate之后有一些点,然后应用程序在该行崩溃。

axisChange : function(){
  //set date from period
  var filterDate = new Date();

  switch(this.get('selectedPeriod'))
  {
    case 'week':
      filterDate.setMonth(filterDate.getMonth()-1);
      break;
    case 'day':
      filterDate.setDate(filterDate.getDate()-7);
      break;
    case 'hour':
      filterDate.setDate(filterDate.getDate()-1);
      break;
  }
  /*var chart = jQuery("#chart").data("kendoChart");
  chart.setOptions({ categoryAxis: { baseUnit: this.get('selectedCategory') }});*/
  dataSource.filter({
    "field": "CreatedAt",
    "operator": "gt",
    "value": filterDate
  });
}

修改

仔细检查这是dataSource.filter的问题,特定于日期,如果我尝试使用另一个过滤器,如:

dataSource.filter({
                        "field": "Note",
                        "operator": "contains",
                        "value": 'e'
                    });

根据过滤器,所有内容都可以更新。

详细代码,请访问GITHUB REPO

https://github.com/Danelund/NeuroHelper/blob/master/NeuroHelper/scripts/app.js

2 个答案:

答案 0 :(得分:0)

我对这个问题的第一个想法是关于日期格式。在dataSource.filter行之前放置一个断点,并检查日期格式是什么。您可能还应该使用某种date.toString()函数将此日期对象转换为字符串。

dataSource.filter({
  "field": "CreatedAt",
  "operator": "gt",
  "value": filterDate.toString()
});

答案 1 :(得分:0)

您是否已将要过滤的字段类型(即CreatedAt)指定为类型"日期" ? 如何进行演示here

schema: {
model: {
  id: "ProductID",
  fields: {
    CreatedAt: {
      type: "date"
    },