Почему я не могу получить доступ к элементам в списке, даже если SPList.ItemCount> 0? - PullRequest
1 голос
/ 29 сентября 2010

У меня один и тот же код, работающий на двух разных установках SharePoint, для итерации по элементам в списке и отображения данных. Против первой установки SharePoint,

SPList.ItemCount == SPList.Items.Count == 4.

Против второй установки SharePoint, SPList.ItemCount == 4, а SPList.Items.Count == 0, и цикл foreach, выполняющий итерацию по элементам Списка, не работает (потому что нет элементов). (Само собой разумеется, списки в обеих установках SP имеют одинаковые элементы).

Код, который я использую, можно обобщить следующим образом:

...

SPList list = web.Lists["list"];
SPListItemCollection itemCollection = list.Items;

Console.WriteLine("list.ItemCount: {0}", list.ItemCount); //prints "list.ItemCount: 4"
Console.WriteLine("list.Items.Count: {0}", list.Items.Count); //prints "list.Items.Count: 0"

foreach (SPListItem item in itemCollection)
{
    //nothing executed here, since itemCollection is empty,
    //even though list.ItemCount is 4.
}

...

Что может привести к различию SPList.ItemCount и SPList.Items.Count? И, что более важно, почему я не могу перебирать элементы в списке, даже если SPList.ItemCount> 0?

Дубликат этого вопроса появляется в Переполнение SharePoint , но не полностью объясняет решение.

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

Разрешения на уровне элемента могут препятствовать list.Items открывать каждый элемент для рассматриваемого пользовательского контекста и, следовательно, отсчитывать свойство.

1 голос
/ 29 сентября 2010

Значение свойства ItemCount включает папки в библиотеке документов, а также файлы в подпапках. Значение свойства Count класса SPListCollection не включает папки.

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.itemcount.aspx

Моя теория состоит в том, что это как-то связано с папками, я знаю, вы сказали, что они имеют одинаковую установку. Вы уверены, что это так. Вы физически проверили список файлов через пользовательский интерфейс или каким-либо другим способом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...