我需要使用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?

附言我需要更新列表项。前面提到的xml非常适合更新DocumentLibrary项目...

最佳答案

小菜一碟:)哈哈

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

这是DisabledEventFiringScope类的代码:
class DisabledEventFiringScope : SPEventReceiverBase, IDisposable
{
    public DisabledEventFiringScope()
    {
        EventFiringEnabled = false;
    }

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

08-26 15:52