【问题标题】:Binding existing Kendo grid to a new JSON object将现有的 Kendo 网格绑定到新的 JSON 对象
【发布时间】: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 },
        ... ...
    ]
});

【问题讨论】:

    标签: javascript json kendo-ui kendo-grid


    【解决方案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#", } }中使用的一列
    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多