-1

У меня есть страница поиска, где пользователь вводит поля и нажимает кнопку поиска. Затем я делаю вызов ajax в список Sharepoint 2013 с поисковым запросом и получением данных. После сбора данных я привязываю данные к сетке Кендо.Связывание данных списка SharePoint с сеткой Кендо после нажатия кнопки

Этот список SharePoint содержит различные типы полей: поиск, выбор, текстовое поле. Данные из столбца выбора, типы текстовых полей получают привязку к сетке, я также могу видеть данные. Но данные из столбцов поиска не видны в Kendo Grid.

Вместо данных, его показ

[объект Object]

Ниже приведен код Ajax вызова творю и успеха я привязки данных к кэндо 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

I circled the errors which is being seen

  • Ниже приведен скриншот данных, рассматривается в браузере консоли:

Circled lookup Columns

Может кто-нибудь, пожалуйста, помогите мне или дать мне подсказку о том, как отобразить искать данные столбцов в кендо Сетка.

ответ

0

Это стандартное поведение, значения поля поиска в этом случае представляют собой сложное свойство и возвращаются как объект. В зависимости от того, какое поле из списка поиска должны быть отображены (предположим 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();