我有一个搜索页面,用户输入字段并单击搜索按钮。然后我用搜索查询和获取数据对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();
}
});
}
ID,简短描述,分析ID,分析名称是文本类型列
生产状态是选择列,
状态,平台是SharePoint中的查找列
任何人都可以帮助我或者提示如何在Kendo Grid中显示查找列数据。
答案 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();