我正在尝试使用客户端对象模型更新SharePoint 2010列表中的值。我对列表拥有完全控制权限,所以我不认为这是一个权限问题。
我的代码是:
SP.ListItemCollection oListItemCol = oList.GetItems( query);
ctx.Load(oListItemCol);
ctx.ExecuteQuery();
SP.ListItem li = oListItemCol[0];
li.FieldValues[intTrgtCol] = 123;
li.FieldValues[intESpace] = "no space";
li.FieldValues[foo1.InternalName] = "Moose";
li.Update();
ctx.ExecuteQuery();
ctx.Load(li);
ctx.ExecuteQuery();
我得到了正确的列表项,内部名称是正确的。更改FieldValues后,我可以看到它们在本地更改。新值不存储在SharePoint站点中。第二个ExecuteQuery将本地值设置回原始值。谁能看到我做错了什么?
答案 0 :(得分:0)
使用ListItem.Item property指定列表项字段值。
如何更新列表项:
List list = context.Web.Lists.GetByTitle(listTtle);
ListItem listItem = list.GetItemById(listItemId);
listItem[fieldName] = fieldValue;
listItem.Update();
context.ExecuteQuery();