具有Sharepoint在线列表的Kendo UI网格作为数据源

时间:2015-04-15 14:27:51

标签: kendo-ui kendo-grid sharepoint-2013 office365

我很难将SharePoint Online列表作为Kendo UI Grid的数据源连接起来。有没有人能够做到这一点,并能够提供代码示例?以下是我一直在尝试的内容。

$("#grid").kendoGrid({
        dataSource: {
            type: "odata",
            transport: {
                read: "https://anysharepointonlinesite.com/_api/web/lists/GetByTitle('ListName')/items",                                
                dataType: "json"
            },
            schema: {
                model: {
                    fields: {
                        ID: { type: "number" },
                        Title: { type: "string" }
                    }
                }
            },
            pageSize: 20
        },
        columns: [{
                field:"ID",
                filterable: false
            },
            {
                field: "Title",
                title: "Title"
            }
        ]
    });
});

我遇到的问题是没有返回任何数据。

1 个答案:

答案 0 :(得分:1)

我已将Kendo UI控件用于Office 365(SharePoint Online)网站。我在这篇here上有一篇博文,但我在这里描述了重要的部分。

我将Map控件连接到一些列表数据。该控件显示在SharePoint网站上。我创建了一个对象来进行REST调用,并将结果作为kendo.data.Datasource保存到对象的属性中。

$().ready(function () {
var restUrl = "/{site location}/_api/web/lists/GetByTitle('Locations')/items";
$.getJSON(restUrl, {
    format: 'json'
}).done(function (data) {
    $.each(data.value, function (i, item) {
        item.location = [];
        item.location.push(parseFloat(item.LocationLat));
        item.location.push(parseFloat(item.LocationLong));
    })

    locationMap.mapData = new kendo.data.DataSource({ data: data.value });
    locationMap.mapData.read();
    createMap();
});

在我的createMap函数中,我将控件的datasource属性设置为上面定义的属性。

dataSource: locationMap.mapData,

是的,这是一个地图控件,但是我和其他控件一样使用了这个方法,比如调度程序控件。我已经使用Telerik一段时间了,他们的控件往往在连接数据时的行为方式相同。