c# - SharePoint Lists.asmx UpdateListItems SET Field1=NewValue WHERE Field1=OldValue(按要更新的字段过滤)

标签 c# sharepoint list service

我想做的事情看起来很简单,我有一个应用程序可以通过 SharePoint Services 与某些 SharePoint (MOSS 2007) 列表进行交互。在一次服务调用中,我想更新一个或多个列表项。问题是我只想更新那些要更新的字段等于旧值的项目。我的想法是使用 Lists.UpdateListItems 并过滤然后更新,但我一直无法找到它的语法。

伪:将 [ListA] 中所有项目的 [Name] 更新为“NewName”,其中 [Name] = “OldName”

我想避免的一种解决方案是:获取所有 ListItems 的 ID,其中 Name="OldName"并遍历它们,为每个 ListItem 进行单独的服务调用以更新 Name="NewName"。

我无法引用 Microsoft.SharePoint 程序集,因此理想情况下这是在一个服务调用中。

最佳答案

您必须进行2次调用,一次用于检索匹配项,一次用于进行更新。

这可能相当复杂,所以我在这里写了一篇关于它的博文(包括必要的代码):http://www.wirebear.com/blog/2011/02/11/batch-updates-with-sharepoint-2007-services/

关于c# - SharePoint Lists.asmx UpdateListItems SET Field1=NewValue WHERE Field1=OldValue(按要更新的字段过滤),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973909/

相关文章:

sharepoint - 如何获取共享点库中文件的绝对 URL

python - 检查列表的内容

Python 命令有效,但为什么呢?

c# - LINQ 中的自连接与聚合查询

c# - 从 xhtml 文档中删除未关闭的开始 <p> 标签

c# - FluentValidation ModelState.IsValid 始终为真

JavaScript this.todoList.filter 不是函数

c# - TreeView 控件问题

python - 如何使用 python 脚本将文件上传到 Sharepoint 站点

python - 如何将字典+列表组合成一个排序列表