2015-07-25 8 views
0

Я ищу проверку источника данных после того, как он будет следить за количеством элементов. По какой-то причине я не могу заставить события dataBound или dataBinding даже загореться.Kendo UI Chart DataBinding не срабатывает

Данные фактически передаются в функцию, поэтому при создании сетки она имеет локальные данные.

Пример: http://dojo.telerik.com/IjAKo/2

Исходный код:

<div id="grid"></div> 

<script> 
    function onDataBinding(e) { 
    console.log('here'); 
    } 

    $(document).ready(function() { 
    var chart = $("#grid").kendoChart({ 
     chartArea: { 
     height: 250, 
     }, 
     legend: { 
     position: "bottom", 
     labels: { 
      font: "bold 10px Arial", 
     } 
     }, 
     seriesDefaults: { 
     type: "column", 
     spacing: 0, 
     overlay: { 
      gradient: "none" 
     } 
     }, 
     series: [{ 
     name: "ESCROW", 
     color: "#cccbcb", 
     data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 
     }, { 
     name: "NON-ESCROW", 
     color: "#406f8c", 
     data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 
     }], 
     categoryAxis: { 
     line: { 
      visible: false 
     }, 
     categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Set", "Oct", "Nov", "Dec"], 
     majorGridLines: { 
      visible: false 
     } 
     }, 
     valueAxis: { 
     labels: { 
      format: "{0:N0}" 
     }, 
     line: { 
      visible: false 
     }, 
     majorGridLines: { 
      visible: false 
     }, 
     max: 20 
     }, 
     tooltip: { 
     visible: true, 
     format: "{0:N0}" 
     }, 
     dataBinding: onDataBinding // tried to do it here. 

    }); 
    // tried to bind after initialization 
    chart.bind("dataBound", function(e) { 
     alert('here') 
    }); 

    }); 
</script> 

ответ

2

Существует не dataBinding события в графике, есть только dataBound. Это событие срабатывает только тогда, когда диаграмма имеет указанные dataSource, даже пустую, так что вы должны добавить строку как и к графике:

dataSource: {}, 

И еще одно: в вашем примере вы используете локальные данные, так что если вы первый создайте свою диаграмму, а затем привяжите функцию к dataBound, событие не будет срабатывать, поскольку данные уже привязаны. Определить DataBound события в диаграмме конструктора:

dataBound: function(e) { console.log('data bound') }, 

Fixed пример: http://dojo.telerik.com/IjAKo/4

+0

Спасибо, что отчасти неясный, но это действительно работает. Не понял, что у меня должен быть пустой источник данных. – lucuma

+0

Если вы оставите его так, как будто ваше свойство 'dataSource' будет содержать 0 dataItems, потому что вы явно указали свои данные в диаграммах. Вы можете найти количество строк данных непосредственно в параметрах диаграммы. Чтобы иметь данные в вашей диаграмме 'dataSource', вам необходимо перестроить диаграмму costructor. См. Этот пример: http://demos.telerik.com/kendo-ui/line-charts/local-data-binding –

 Смежные вопросы

  • Нет связанных вопросов^_^