Kendo ui 剑道网格数据源更新方法不起作用

Kendo ui 剑道网格数据源更新方法不起作用,kendo-ui,grid,datasource,Kendo Ui,Grid,Datasource,我有JSON数据通过Pusher流到一个简单的MVC5网站,其中包含一个剑道网格。数据到达后,在网格中成功呈现,但我每次都在创建和设置数据源。由于这似乎是有罪的,我试图确定为什么我简单地更新数据源的方法不能呈现数据 网格: <div id="dashboard"></div> <script> $(document).ready(function () { $("#dashboard").kendoGrid({

我有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>
我已经确认数据从Pusher正确到达,但上述方法不会更新网格

提前感谢您的考虑

jbt

使用数据源上的data()方法设置其数据

var array = JSON.parse(data.updateGrid);
var grid = jQuery("#dashboard").data("kendoGrid");
grid.dataSource.data(array);            
如果数据源是XML类型,则只能在数据源上设置数据的字符串值。因为您使用的是JSON,所以需要调用data函数并传入新数据

请参阅文档

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