sharepoint 2010更新fieldvalue

时间:2014-04-16 12:47:03

标签: sharepoint-2010 client

我正在尝试使用客户端对象模型更新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将本地值设置回原始值。谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:0)

使用ListItem.Item property指定列表项字段值。

如何更新列表项:

List list = context.Web.Lists.GetByTitle(listTtle);
ListItem listItem = list.GetItemById(listItemId);
listItem[fieldName] = fieldValue;
listItem.Update();
context.ExecuteQuery(); 

参考

How to: Create, Update, and Delete List Items