我将JSON数据通过Pusher流向一个容纳Kendo Grid的简单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
答案 0 :(得分:2)
使用dataSource上的data()方法设置数据。
var array = JSON.parse(data.updateGrid);
var grid = jQuery("#dashboard").data("kendoGrid");
grid.dataSource.data(array);
如果源是XML类型,则只能在dataSource上设置数据的字符串值。由于您使用的是JSON,因此需要调用数据函数并传入新数据。
参见文档...... http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#methods-data