Удалить несколько элементов списка sharepoint программно в соответствии с некоторым значением столбца

#sharepoint-2007

#sharepoint-2007

Вопрос:

  • Я хочу удалить элементы библиотеки документов с помощью кода.
  • Предположим, что библиотека Doc имеет один столбец folderId.
  • Я хочу удалить все элементы с идентификатором папки 33.

Я пытаюсь удалить его с помощью кода, но удаляется только первое появление с идентификатором папки 33.

Когда я пытаюсь удалить второе вхождение, возникает следующее исключение:

«Microsoft.SharePoint.Исключение: Элемент не существует. Возможно, он был удален другим пользователем. в Microsoft.SharePoint.Разделительный элемент.EnsureItemIsValid() в Microsoft.SharePoint.Разделительный элемент.Подготовьте элемент для обновления (Guid newGuidOnAdd, SPWeb web, логическую миграцию, Booleanamp; bAdd, Booleanamp; bPublish, Object amp; objAttachmentNames, Objectamp; objAttachmentContents, Int32 и parentFolderId) в Microsoft.SharePoint.Разделительный элемент.Обновление внутреннего (Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents) в Microsoft.SharePoint.Разделительный элемент.Update () в ASP._0443e3f9_0806_46ea_98ce_21e2d9f6c224_1904097461.btnDelete_Click(отправитель объекта, EventArgs e) » Пожалуйста, помогите мне, как удалить все элементы из библиотеки документов в соответствии с идентификатором папки

Ответ №1:

Попробуйте просмотреть коллекцию в обратном порядке:

 for (int i = items.Count - 1; i >= 0; i--)
{
    SPListItem item = items[i];
    item.Delete();
}