按钮单击后将SharePoint列表数据绑定到Kendo网格

时间:2016-10-26 22:43:47

标签: sharepoint kendo-grid sharepoint-2013 sharepoint-designer

我有一个搜索页面,用户输入字段并单击搜索按钮。然后我用搜索查询和获取数据对Sharepoint 2013列表进行ajax调用。获取数据后,我将数据绑定到Kendo网格。

此SharePoint列表包含不同类型的字段,例如:查找,选择,文本字段。来自选择列的数据,文本字段类型很容易绑定到网格,我也能看到数据。但是在Kendo Grid中没有看到来自查找列的数据。

而不是数据,它的显示

  

[object Object]

以下是我正在制作的ajax调用代码,并且成功将数据绑定到Kendo Grid。

function fetchData(webUrl, filterString){
    $.ajax({
        url: webUrl +"/_api/web/lists/getByTitle('Inventory')/Items?$filter="+filterString,
        method: 'get',
        contentType: 'application/json;odata=verbose',
        headers:{
            'X-RequestDigest': $('#__REQUESTDIGEST').val(),
            'Accept': 'application/json;odata=verbose'
        },
        success: function(data){
            var grid = $('#grdInventory').getKendoGrid();
            grid.dataSource.data(data.d.results);
            grid.refresh();
        }
    });
}
  • 以下是Grid的屏幕截图:In Grid =

ID,简短描述,分析ID,分析名称是文本类型列

生产状态是选择列,

状态,平台是SharePoint中的查找列

I circled the errors which is being seen

  • 以下是浏览器控制台中显示的数据的屏幕截图:

Circled lookup Columns

任何人都可以帮助我或者提示如何在Kendo Grid中显示查找列数据。

1 个答案:

答案 0 :(得分:0)

这是标准行为,在这种情况下,Lookup字段值表示复杂属性并作为对象返回。根据应显示查找列表中的哪个字段(在我们的示例中假设为Title),您可以在显示网格之前对返回的数据应用以下过滤器:

 var items = data.d.results.map(function(item){
     item.State = item.State.Title; //lets get Title from Lookup object  
     return item;
 });

然后绑定数据:

var grid = $('#grdInventory').getKendoGrid();
grid.dataSource.data(items);
grid.refresh();