Я пытаюсь сделать что-то очень простое - получить доступ к элементам моего списка SharePoint и их свойствам.
Однако значение SPListItem.Properties равно нулю для всех обычных списков. Все работает, как и ожидалось, для библиотек документов и страниц. Итак, если элементы списка основаны на типе документа, все хорошо. Если они основаны на элементе, свойства не возвращаются.
Я пробовал в двух средах: новые сайты создавались из шаблонов публикации OOTB, с новыми списками, основанными на типах контента OOTB и т. Д. Всегда одно и то же.
Правильное количество SPListItems всегда возвращается. Название и имя в порядке. Просто хеш-таблица .Properties совершенно пуста.
В отчаянии я написал веб-часть, которая выводит следующую (некрасивую!) Диагностику.
foreach (SPList list in SPContext.Current.Web.Lists)
{
foreach (SPListItem item in list.Items)
{
Label label = new Label();
label.Text = "Name: " + item.Name + "Property count: " + item.Properties.Count;
this.Controls.Add(label);
}
}
Единственное наблюдение состоит в том, что он работает именно так, как я описал ранее. Я просто делюсь кодом, чтобы показать, что это самая простая операция из всех возможных.
Вот пример вывода - я добавил разрывы строк для удобства чтения; -)
Name: Test Property count: 0
Name: default.aspx Property count: 21
Очевидно, что элемент «Тест» - это элемент списка на основе элементов, а default.aspx - это страница.
Кто-нибудь сталкивался с чем-нибудь подобным? Есть идеи?