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

相关问题