2013-08-23 12 views
1

Я не могу понять, как правильно упорядочить категории по оси x в линейной диаграмме пользовательского интерфейса кендо. Вот мой пример:Kendo UI line chart порядок сортировки

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 
    <div id="chart"></div> 
    <script src="js/thirdParty/jquery.js"></script> 
    <script src="js/thirdParty/kendo.all.min.js"></script> 
    <script> 
     $(function() { 
      var data, 
      dataSource; 
     data = [{ 
       type: "C1", 
       amount: 100, 
       year: 2008 
      }, { 
       type: "C2", 
       amount: 120, 
       year: 2008 
      }, { 
       type: "C2", 
       amount: 50, 
       year: 2009 
      }, { 
       type: "C1", 
       amount: 10, 
       year: 2010 
      }, { 
       type: "C1", 
       amount: 120, 
       year: 2011 
      }, { 
       type: "C2", 
       amount: 50, 
       year: 2011 
      }]; 
     dataSource = new kendo.data.DataSource({ 
      data: data, 
      group: {field: "type"}, 
       sort: { field: "year" } 
     }); 
      $("#chart").kendoChart({ 
       dataSource: dataSource, 
       series: [{ 
        type: "line", 
        field: "amount", 
        categoryField: "year", 
        name: "#= group.value #" 
       }], 
      }) 
     }); 
    </script> 
</body> 
</html> 

и вот снимок экрана, что выглядит результат:

enter image description here

Как вы можете видеть годы упорядочены неправильно, даже если данные в год порядке и Я указал сортировку по году в источнике данных кендо.

Любая помощь будет оценена по достоинству.

ответ

0

Вы должны преобразовать года из числа на сегодняшний день, например:

data = [{ 
      type: "C1", 
       amount: 100, 
       year: new Date(2008, 0, 1); 
      }, { 
       type: "C2", 
       amount: 120, 
       year: new Date(2009, 0, 1) 
      }, ... // etc. 

Вы можете еще больше определять baseUnitStep шагов.

0

Вам необходимо добавить данные, связанные с вашей картой, как это:

<script> 
     $(function() { 
      var data, 
      dataSource; 
     data = [{ 
       type: "C1", 
       amount: 100, 
       year: 2008 
      }, { 
       type: "C2", 
       amount: 120, 
       year: 2008 
      }, { 
       type: "C2", 
       amount: 50, 
       year: 2009 
      }, { 
       type: "C1", 
       amount: 10, 
       year: 2010 
      }, { 
       type: "C1", 
       amount: 120, 
       year: 2011 
      }, { 
       type: "C2", 
       amount: 50, 
       year: 2011 
      }]; 
     dataSource = new kendo.data.DataSource({ 
      data: data, 
      group: {field: "type"}, 
       sort: { field: "year" } 
     }); 
      $("#chart").kendoChart({ 
       dataSource: dataSource, 
       series: [{ 
        type: "line", 
        field: "amount", 
        categoryField: "year", 
        name: "#= group.value #" 
       }], 
       dataBound: function(e) { 
      var axis = e.sender.options.categoryAxis; 
      axis.categories = axis.categories.sort(); 
     } 
      }) 
     }); 
    </script>