2015-01-02 3 views
0

У меня есть данные JSON, проходящие через Pusher на простой веб-сайт MVC5 с сеткой Кендо. Данные по прибытии успешно отображаются в сетке, но я каждый раз создаю и устанавливаю источник данных. Поскольку это кажется греховным, я пытаюсь определить, почему мой подход к простому обновлению источника данных не отображает данные.Подход обновления источника данных сетки Кендо не работает

Сетка:

<div id="dashboard"></div> 
<script> 
    $(document).ready(function() { 
     $("#dashboard").kendoGrid({ 
      columns: [ 
       { field: "SystemName", width: "50px", title: "System" }, 
       { field: "Description", width: "100px", title: "Description" }, 
       { field: "SystemStatus", width: "30px", title: "Status" } 
      ], 
      height: 600, 
      scrollable: true, 
      sortable: true, 
     }); 
     var dataSource = new kendo.data.DataSource(); 
     var grid = jQuery("#dashboard").data("kendoGrid"); 
     grid.setDataSource(dataSource); 
    }) 
</script> 

Моя неудачная попытка прочитать в данных без создания и связывания нового источника данных (тело вызова функции, которая случается):

var array = JSON.parse(data.updateGrid); 
    var grid = jQuery("#dashboard").data("kendoGrid"); 
    grid.dataSource.data = array; 
    grid.dataSource.read(array);    
    grid.refresh(); 

У меня есть подтвердил, что данные поступают из Pusher правильно, но вышеупомянутый подход не обновляет сетку.

Заранее благодарим за любые соображения.

JBT

ответ

2

Используйте метод данные() на DataSource, чтобы установить его данные.

var array = JSON.parse(data.updateGrid); 
var grid = jQuery("#dashboard").data("kendoGrid"); 
grid.dataSource.data(array);    

Вы можете установить строковое значение данных в dataSource, если источник имеет тип XML. Поскольку вы используете JSON, вам нужно вызвать функцию данных и передать новые данные.

См. Документацию ... http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#methods-data

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