Kendo网格数据源更新方法无法正常工作

时间:2015-01-02 16:53:20

标签: kendo-ui grid datasource

我将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

1 个答案:

答案 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