2011-03-03 35 views
4

我需要使用web.ProcessBatchData更新SPListItem而不創建新版本。無法使用ProcessBatchData而不增加處理項目的版本

我試圖用這個XML:這個XML我收到了新的版本({舊版本} + 1)

<?xml version="1.0" encoding="UTF-8"?> 
<ows:Batch OnError="Continue"> 
    <Method ID="1"> 
    <SetList>{some-guid}</SetList> 
    <SetVar Name="Cmd">Save</SetVar> 
    <SetVar Name="ID">{list-item-id}</SetVar> 
    <SetVar Name="owshiddenversion">{current-item-version}</SetVar> 
    <SetVar Name="urn:schemas-microsoft-com:office:office#Title">some title</SetVar> 
    </Method> 
</ows:Batch> 

BatchData執行後即使不改變任何可見的項目字段。

是否可以像SystemUpdate(false)一樣使用ProcessBatchData?

P.S.我需要更新列表項目。上一頁提到的XML完美的作品上更新DocumentLibrary項目...

回答

0

小菜一碟:)哈哈

using (var disabler = new DisabledEventFiringScope()) 
    { 
     web.ProcessBatchData(batchXml); 
    } 

這裏是爲DisabledEventFiringScope類的代碼:

class DisabledEventFiringScope : SPEventReceiverBase, IDisposable 
{ 
    public DisabledEventFiringScope() 
    { 
     EventFiringEnabled = false; 
    } 

    public void Dispose() 
    { 
     EventFiringEnabled = true; 
    } 
} 
+0

我認爲它不」噸工作在自定義列表?你測試過了嗎? – marcinn 2013-07-11 14:11:02

+0

是的,它工作... – 2013-07-12 06:21:41

+0

我做了一些測試,並探討其他討論板上的問題(http://social.technet.microsoft.com/Forums/sharepoint/en-US/80748556-fed3-4906-a4da-7483d37525d7/can not-use-processbatchdata-without-increasing-version-of-processed-item),你的解決方案僅禁用事件記錄器觸發。執行批次數據更新後,版本增加。 – marcinn 2013-07-15 08:18:07

相關問題