【发布时间】:2017-09-13 13:57:10
【问题描述】:
我在 SharePoint Online 中有一个非常简单的文档库:
mysite.sharepoint.com/site/Documents
我在库中添加了一个库列,允许多选。
文档有多个主题:
Document1.docx : Maths, Science, Internet
Document2.docx : Maths, Other, Science
我想在控制台中使用该列上的值递归地列出每个项目并替换其中一个值。
我想用一些 C# 代码和 CSOM 将“数学”主题替换为“数学”。
这是我的代码。它在只有一个值时有效,但当为文档选择多个主题时,它似乎是空的。
我尝试强制转换,但它似乎返回了一个对象数组并且它不可枚举。
ClientContext context = newClientContext("https://mysite.sharepoint.com/site/");
Web web = context.Web;
List list = context.Web.Lists.GetByTitle("Documents");
CamlQuery query = new CamlQuery();
query.ViewXml = @"<View Scope='Recursive' />";
ListItemCollection items = list.GetItems(query);
context.Load(list);
context.Load(items);
context.ExecuteQuery();
foreach (ListItem item in items)
{
if ( item["Subjects"] != null && ((item["Subjects"]).ToString()).Contains("Maths")){
Console.WriteLine(item.Id + " - " + item["Subjects"]);
item["Subjects"] = "Mathematics";
item.Update();
context.ExecuteQuery();
}
}
结果应该是:
Document1.docx : Mathematics, Science, Internet
Document2.docx : Mathematics, Other, Science
【问题讨论】:
标签: c# sharepoint csom