SharePoint ListItemCollection.GetById возвращает пустой ListItem? - PullRequest
0 голосов
/ 11 апреля 2019

Итак, я пытаюсь получить данные с сервера sharepoint. ListItem

Единственная проблема в том, что эта часть здесь:

collection.GetById (Itemid)

возвращает полностью пустой ListItem вместо ListItem, соответствующего идентификатору

когда я проверяю с помощью отладчика, элемент действительно находится внутри коллекции, и все данные там.

Как мне исправить это или я что-то упустил здесь?

        public Dictionary<string, object> GetPendingEmployeeItem(int itemId)
        {
            var list = _app.Sharepoint.Web.Lists.GetByTitle("New Employee");
            var query = new CamlQuery();
            query.ViewXml = "<View></View>";

            var collection = list.GetItems(query);
            _app.Sharepoint.Load(collection, items => items.Include(
                item => item.Id,
                item => item.DisplayName,
                item => item.FieldValuesAsText));
            _app.Sharepoint.ExecuteQuery();

            return ConvertToDictionary(collection.GetById(itemId));
        }

        private Dictionary<string, object> ConvertToDictionary(ListItem item)
        {
            var dic = new Dictionary<string, object>();
            foreach (var pair in item.FieldValuesAsText.FieldValues)
            {
                dic.Add(pair.Key, pair.Value);
            }

            return dic;
        }

1 Ответ

0 голосов
/ 12 апреля 2019

Итак, я нашел решение.Я не знаю, почему это не сработало раньше, но, думаю, до тех пор, пока оно работает, это нормально.

Вместо использования указанных методов GetById / GetItemById я просто обошел ихс Первый .Либо я что-то пропустил, либо эти методы не работают.

public Dictionary<string, object> GetPendingEmployeeItem(int itemId)
    {
        var list = _app.Sharepoint.Web.Lists.GetByTitle("New Employee");
        var query = new CamlQuery();
        query.ViewXml = "<View></View>";

        var collection = list.GetItems(query);

        _app.Sharepoint.Load(collection);
        _app.Sharepoint.ExecuteQuery();

        return collection.First(item => item.Id.Equals(itemId)).FieldValues;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...