2013-12-16 71 views
0

我嘗試使用item更新事件將文檔添加到庫時更新文檔的自定義元數據,但它不起作用。自定義aspx應用程序使用href元素來指向文檔的URL。點擊它打開Windows資源管理器視圖,類似於OOB Sharepoint 2013資源管理器視圖。現在,當用戶通過複製粘貼選項將library1中的文檔(稱爲sitecollection1中的site1中的生命)複製到library2(駐留在sitecollection2中的site2中)時,我需要清除文檔的一些元數據。我正在嘗試Lukasz的建議,但元數據未被清除。在調試模式下,即使事件觸發在更新之前被禁用,我看到更新的事件再次被再次調用,這很奇怪。最後,我的元數據沒有被清除。我嘗試了更新和更新事件。任何想法?這裏是我的代碼更新:Sharepoint 2013-使用itemupdating或itemupdated事件更新文檔元數據不起作用

public override void ItemUpdated(SPItemEventProperties properties) 
     { 
      base.ItemUpdated(properties); 
      ClearNotes(properties); 
     } 

private void ClearNotes(SPItemEventProperties properties) 
     { 
      try 
      { 
       SPListItem listItem = properties.ListItem; 


       listItem["Notes1"] = string.Empty; 
       listItem["ReviewNote"] = null; 


       base.EventFiringEnabled = false; 
       listItem.Update(); 
      } 
      catch (Exception ex) 
      { 
       //logging error to db 
      } 
      finally 
      { 
       base.EventFiringEnabled = true; 
      } 
     } 

回答

0

我認爲它必須this.EventFiringEnable = false; 沒有基礎。 ...

您還可以itemupdating和Afterproperties做到這一點,那麼你不需要禁用EventFiring並且不需要更新:

public override void ItemUpdating(SPItemEventProperties properties) 
     { 
      base.ItemUpdating(properties); 

      ///... 
      properties.AfterProperties["Notes1"] = string.Empty;    
     } 
相關問題