如果不增加已处理项目的版本,则无法使用ProcessBatchData

时间:2011-03-03 13:54:31

标签: sharepoint sharepoint-2007

我需要使用web.ProcessBatchData更新SPListItem而不创建新版本。

我试过使用这个xml:

<?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>

在此xml上执行BatchData后,即使不更改任何可见的项目字段,我也收到了新版本({previous-version} + 1)。

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

P.S。我需要更新List项目。前面提到的xml在更新DocumentLibrary项目时非常有效...

1 个答案:

答案 0 :(得分:0)

一块蛋糕:) lol

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

这是DisabledEventFiringScope类的代码:

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

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