首页 > 解决方案 > Sharepoint - 从回收中删除项目

问题描述

最近我遇到了以下场景:

  1. 在自定义列表中创建列表项
  2. 使用批量删除程序将其删除(在删除之前将 UniqueId 保留在某处)
  3. 该项目进入回收站
  4. 我已经尝试了 web.RecycleBin.Delete(ids) (我使用了步骤 2 中的 UniqueId)和错误 System.ArgumentException: ids at Microsoft.SharePoint.SPRecycleBinItemCollection.GetSortedIds(Guid[] ids, SPRecycleBinItemType[]& itemTypes)
  5. 我尝试遍历回收站项目,但没有一个已删除的项目具有步骤 2 中的 UniqueId。我还尝试了 SPRecycleBinItemCollection.GetItemById 没有任何运气

我的问题是 guid 期望 web.RecycleBin.Delete 是什么?我使用了 item.UniqueId 但我认为我错了

标签: sharepoint

解决方案


根据我的测试,您可以尝试以下代码。您可以将 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 来做。


推荐阅读