sharepoint - Sharepoint - 从回收中删除项目
问题描述
最近我遇到了以下场景:
- 在自定义列表中创建列表项
- 使用批量删除程序将其删除(在删除之前将 UniqueId 保留在某处)
- 该项目进入回收站
- 我已经尝试了 web.RecycleBin.Delete(ids) (我使用了步骤 2 中的 UniqueId)和错误 System.ArgumentException: ids at Microsoft.SharePoint.SPRecycleBinItemCollection.GetSortedIds(Guid[] ids, SPRecycleBinItemType[]& itemTypes)
- 我尝试遍历回收站项目,但没有一个已删除的项目具有步骤 2 中的 UniqueId。我还尝试了 SPRecycleBinItemCollection.GetItemById 没有任何运气
我的问题是 guid 期望 web.RecycleBin.Delete 是什么?我使用了 item.UniqueId 但我认为我错了
解决方案
根据我的测试,您可以尝试以下代码。您可以将 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 来做。
推荐阅读
- java - Java 项目输出
- matplotlib - Matplotlib 子图使用嵌套 for 循环绘制时间序列(轨迹)
- python - 如何同时满足“[FLAKE8 W605]无效转义序列'\.'”和字符串格式?
- python - 没有2FA/2SA的账号无法通过pyiCloud登录
- laravel - 单击批准按钮后如何使状态显示为批准
- c++ - 在 gdb 调试器中重复 n 次是什么意思?
- reactjs - Google 登录和 Facebook 登录在用 iframe 包装的 React Js 制作的 google chrome 扩展中不起作用
- python - 如何从另一个基于类的框架调用基于类的 tkinter 框架的函数
- powerbi - DAX 去年的计数
- python - 包含多个事件的 CSV 文件,这些事件具有不同的标题和连续的值数量