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

Posted

技术标签:

【中文标题】将现有的 Kendo 网格绑定到新的 JSON 对象【英文标题】:Binding existing Kendo grid to a new JSON object 【发布时间】:2013-11-07 20:03:16 【问题描述】:

我在我的页面上有关注 kendoGrid,加载时从指定的 URL 接收 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 ,
        ... ...
    ]
);

【问题讨论】:

【参考方案1】:

您可以将 DataSource 中的所有数据替换为:

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

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

或者你可以给网格一个全新的数据源(我推荐这种方法):

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

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

当然,在我的示例中,newData 就是从您的函数返回的任何数据。

【讨论】:

它在控制台中显示:[] has no method 'fetch' 其中 [] 是 newData 中的 JSON 使用哪种方法?打电话给dataSource.data()grid.setDataSource()?我的猜测是你正在传递一个数组,你应该传递一个 DataSource 使用grid.setDataSource() 我正在传递一个JSON 对象,在你的情况下是data 对象,我尝试只给我的对象,你已经初始化了data 对象但没有工作。如何将我从服务器 theObject 获取的 JSON 对象转换为 DataSource? var dataSource = new kendo.data.DataSource( data: JSON.parse(someJsonString) );【参考方案2】:

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

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

【讨论】:

在页面加载时,我希望它从 url 加载,但在调用函数后,我希望它用函数返回的新 JSON 数据替换现有数据。跨度> 所以使用 url 进行初始加载,然后使用 grid.dataSource.data(newJSON); 替换它。 在获取数据后它给了我这个错误Uncaught ReferenceError: oSId is not definedoSID是我在命令按钮 command: text: "Options", click: showHideOptions , title: " ", width: "90px", attributes: "id": "#: oSID#", 中使用的一列

以上是关于将现有的 Kendo 网格绑定到新的 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

我可以将现有的 html 主页谷歌分析代码添加到新的 wordpress 主页吗?

从现有的创建新的Kendo UI DataSource

如何允许kendo网格绑定到未定义的字段

将现有的项目列表附加到新列表

Kendo Grid - 搜索后绑定数据

如何将现有的非文档核心数据存储转换为 uimanageddocument?