将现有的Kendo网格绑定到新的JSON对象

时间:2013-10-28 21:10:30

标签: javascript json kendo-ui kendo-grid

我在页面上跟随kendoGrid,加载时从指定的网址接收JSON个对象。

但后来我想将它绑定到从其他来源收到的其他JSON数据。有没有办法可以使用新的JSON对象绑定刷新包含网格的现有数据?

$('#grid').kendoGrid({
    sortable: true,
    groupable: true,
    scrollable: true,

    pageable: {
        pageSizes: 9
    },
    dataSource: {
        transport: {
            read: {
                url: "../Get/JsonData",
                dataType: "Json"
            }
        }
    },
    columns: [
        { field: "name", title: "Name", width: 100 },
        ... ...
    ]
});

2 个答案:

答案 0 :(得分:8)

您可以使用以下命令替换DataSource中的所有数据:

var newData = [ "some", "data", "array" ];

var gridWidget = $('#grid').data("kendoGrid");
gridWidget.dataSource.data(newData);

或者您可以为网格提供一个全新的DataSource(我推荐这种方法):

var newData = new kendo.data.DataSource({
    data: [ "some", "data", "array" ]
});

var gridWidget = $('#grid').data("kendoGrid");
gridWidget.setDataSource(newData);

当然,我的示例中的newData只是从您的函数返回的数据。

答案 1 :(得分:0)

新JSON的结构是否相同(相同的列和相同的数据模型)?如果是,那么是的,只需使用transport.readtransport.read.url,而不是将其定义为string,将其定义为返回其中一个或另一个的函数。

请记住,transport.read可能是一个对象或一个函数。 transport.read.url

也是如此