SharePoint 2013更新fieldvalue

时间:2014-11-21 19:42:24

标签: sharepoint

我有共享点列表我添加了一个列" DistributionId"作为单行文本。我在调试时可以在fieldvalues中看到它。我可以看到它由行listItem.FieldValues [" DistributionId"] =" test&#34 ;;设置。但是,这不会在SharePoint中更新,并在下面触发执行查询时还原为空值。直接检查时,SharePoint中也未设置值。知道我做错了吗?

using (ClientContext clientContext = new ClientContext(SpEndPointUri))
{
Site site = clientContext.Site;
Web web = clientContext.Web;

List list = clientContext.Web.Lists.GetByTitle(library);

CamlQuery query = new CamlQuery();
query.ViewXml = @"<View><Query><Where><Eq><FieldRef Name='ID' /><Value Type='Counter'>" + documentId + @"</Value></Eq></Where></Query></View>";

ListItemCollection items = list.GetItems(query);

// Retrieve all items in the ListItemCollection from List.GetItems(Query). 
clientContext.Load(items, ic => ic.Include(i => i, i => i["DisplayName"], i => i["Id"], i => i["HasUniqueRoleAssignments"]));
clientContext.ExecuteQuery();

ListItem listItem = items[0];

clientContext.Load(listItem);
clientContext.ExecuteQuery();

listItem.FieldValues["DistributionId"] = "test";

listItem.Update();

clientContext.ExecuteQuery();

clientContext.Load(listItem);
clientContext.ExecuteQuery();
}

1 个答案:

答案 0 :(得分:0)

使用ListItem.Item property来设置字段值。 ListItem.FieldValues property仅用于获取包含列表项字段名称和值的键/值对的集合。

如何更新ListItem字段值:

var list = ctx.Web.Lists.GetByTitle(listTitle);
var listItem = list.GetItemById(listItemId);
listItem[fieldName] = fieldValue;
listItem.Update();
ctx.ExecuteQuery();