当我尝试更新sharepoint中的项目名称时出现以下错误 文档库。该项目是文档集类型,其默认值使用javascript加载。在Item added事件中,我们使用新更改的项目的名称值进行更新。但是在item.update()代码语句中,我收到了以下错误。
文件CZY14389已在当前日期由域\用户名修改。
请提供您的解决方案。
答案 0 :(得分:1)
您不能像这样更改sharepoint文档的名称。你需要“移动它”。
Item.Update();
Item.File.MoveTo(Item.ParentList.RootFolder.Url + "/" + newFileName, false);
Item.File.Item["FileRef"] = newFileName;
Item.File.Update();
答案 1 :(得分:0)
在更新项目名称并调用item.update()之前,您是否可以尝试像这样刷新项目:
item = item.ParentList.GetItemById(item.ID);
item.name = "xyz";
item.update();
答案 2 :(得分:0)
这有时会发生在事件处理程序中。问题是事件处理程序中的更新过程与工作流程不同。在用于更新的事件处理程序中,您必须使用以下步骤。不要在工作流程中使用Item.Update()。
按照以下步骤操作:
•在代码之前调用和禁用事件触发:base.EventFiringEnabled = false;
•通过调用item.systemUpdate(false)更新您的项目;
•启用事件触发:base.EventFiringEnabled = true;
答案 3 :(得分:0)
禁用事件触发并调用更新代码,不要忘记启用事件触发。
HandleEventFiring handleEventFiring = new HandleEventFiring();
handleEventFiring.DisableHandleEventFiring();
try
{
item.Update();
//if item.Update doesnt work then use(For me item.update worked only on my local not on prod then i used the below)
//item.SystemUpdate(false)
}
finally
{
handleEventFiring.EnableHandleEventFiring();
}
public class HandleEventFiring : SPItemEventReceiver
{
public void DisableHandleEventFiring()
{
//obsolete
//this.DisableEventFiring();
this.EventFiringEnabled = false;
}
public void EnableHandleEventFiring()
{
//obsotete
//this.EnableEventFiring();
this.EventFiringEnabled = true;
}
}