该文件已被sharepoint中的错误修改

时间:2012-08-24 06:49:32

标签: sharepoint sharepoint-2010

当我尝试更新sharepoint中的项目名称时出现以下错误 文档库。该项目是文档集类型,其默认值使用javascript加载。在Item added事件中,我们使用新更改的项目的名称值进行更新。但是在item.update()代码语句中,我收到了以下错误。

文件CZY14389已在当前日期由域\用户名修改。

请提供您的解决方案。

4 个答案:

答案 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;  
        }  
    }