Sharepoint - Удалить элемент из корзины - PullRequest
0 голосов
/ 28 августа 2018

Недавно я столкнулся со следующим сценарием:

  1. Создать элемент списка в пользовательском списке
  2. Удалите его, используя процедуру пакетного удаления (перед удалением сохраните где-нибудь уникальный идентификатор)
  3. Товар отправляется в корзину
  4. Я попробовал web.RecycleBin.Delete (ids) (я использовал UniqueId из шага 2) и ошибку System.ArgumentException: идентификаторы в Microsoft.SharePoint.SPRecycleBinItemCollection.GetSortedIds (идентификаторы Guid [], SPRecycleBinItemType [] & itemTypes) произошло
  5. Я попытался перебрать элементы корзины, и ни один из удаленных элементов не имел уникального идентификатора из шага 2. Кроме того, я безуспешно пытался использовать SPRecycleBinItemCollection.GetItemById

мой вопрос: какой guid ожидает web.RecycleBin.Delete? Я использовал элемент. Уникальный, но я думаю, что я не прав

1 Ответ

0 голосов
/ 28 августа 2018

На основании моего теста вы можете попробовать следующий код. Вы можете хранить guid во временном массиве.

using (SPSite site = new SPSite(strSiteUrl))//SPContext.Current.Site)
            {
                using (SPWeb web = site.OpenWeb())
                {

                    // Allow Unsafe Updates to prevent the cross site scripting
                    web.AllowUnsafeUpdates = true;

                    //// Get The SPList
                    SPList list = web.Lists["123"];
                    // Get the list items

                    SPListItem item = list.Items[0];
                    Guid strGuid = item.UniqueId;
                    item.Delete();

                    Guid[] guids = { strGuid };
                    web.RecycleBin.Delete(guids);
                }

            }

Но я предлагаю вам использовать CSOM для этого.

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