Невозможно получить элементы списка из списка SharePoint с помощью CAMLQuery в C# - PullRequest
0 голосов
/ 10 апреля 2020

Невозможно получить элементы списка в списке SharePoint с помощью CAMLQuery в C#. У меня есть права администратора и возможность извлекать имена столбцов из списка, но получение элементов списка считается за 0.

Может кто-нибудь помочь мне в этом? Ниже код. Здесь мы получаем значение "collListItem" как 0

  cc.Load(cc.Web, p => p.Lists);
            cc.ExecuteQuery();
            var lst = cc.Web.Lists.GetByTitle("Tracker List");
            cc.Load(lst.Fields);
            cc.ExecuteQuery();
            Console.WriteLine("\n Columns \n");

            foreach (var item in lst.Fields)
            {
                if (item.Hidden == false)
                {
                    Console.WriteLine(item.Title);
                }
            }
            CamlQuery camlQuery = new CamlQuery();
            camlQuery.ViewXml = "<View><Query><OrderBy><FieldRef Name='Created' Ascending='false' /></OrderBy></Query><RowLimit>5</RowLimit></View>";
            ListItemCollection collListItem = lst.GetItems(camlQuery);
            cc.Load(collListItem);
            cc.ExecuteQuery();

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Спасибо за ответ, однако это не работает для нас. Мы используем app-id и secret для извлечения элементов List и используем для этого OfficeDevPnP Nuget. Мы являемся владельцем приложения SharePoint и уже передаем FullControl в коллекцию. Мы можем получить имена коллекций, имена полей конкретного List, но не ListItems. Пример кода приведен для справки.

using OfficeDevPnP.Core; использование Microsoft.SharePoint.Client;

с использованием (var clientContext = new AuthenticationManager (). GetAppOnlyAuthenticatedContext (siteUrl, appId, appSecret)) {

            CamlQuery caml = new CamlQuery();
            caml.ViewXml = "<View><Query><OrderBy><FieldRef Name='Created' Ascending='false' /></OrderBy></Query><RowLimit>5</RowLimit></View>";

            var requestItems = clientContext.Web.Lists.GetByTitle(listName).GetItems(caml);
            clientContext.Load(requestItems);
            clientContext.ExecuteQuery();
            foreach (var item in requestItems)
            {
                Console.WriteLine(item["Title"]);
            }

}

0 голосов
/ 10 апреля 2020

Пример демонстрации:

using (var clientContext = new ClientContext("http://sp"))
            {

                CamlQuery caml = new CamlQuery();
                caml.ViewXml = "<View><Query><OrderBy><FieldRef Name='Created' Ascending='false' /></OrderBy></Query><RowLimit>5</RowLimit></View>";

                var requestItems = clientContext.Web.Lists.GetByTitle("Test").GetItems(caml);
                clientContext.Load(requestItems);
                clientContext.ExecuteQuery();
                foreach(var item in requestItems)
                {
                    Console.WriteLine(item["Title"]);
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...