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