Хотелось бы узнать, поддерживается ли следующий подход:
Определите схему сетки и столбцы и инициализируйте пустым массивом:
var dataSource = new kendo.data.DataSource({ data: [] // intentionally empty! }); $("#grid").kendoGrid({ dataSource: dataSource, schema: { model: { fields: { arrive: {type: "number"}, depart: {type: "number"}, src: {type: "string"} } } }, columns: [ { field: "arrive", groupable: false, title: "arrive",width:88}, { field: "depart", groupable: false, title: "depart",width:88}, { field: "src", groupable: true, title: "src", width:44 } ] etcetera });
Затем, после настройки / инициализации, привяжите к событию Change:
var grid = $('#grid').data('kendoGrid'); grid.dataSource.bind("change", function (e) { dataChanged(); }); function dataChanged() { var grid = $("#grid").data("kendoGrid"); grid.refresh(); }
Затем сделайте это:
function populateDatasource(event, data) { var grid = $('#grid').data('kendoGrid'); var parsedData = $.parseJSON(data); grid.dataSource.data(parsedData); }
который вызовет измененное событие и обновит сетку. Я думаю, что у шаблона наблюдения могут возникнуть проблемы, если источник данных инициализирован пустым массивом.