简体   繁体   English

来自 c# 的 Sharepoint 更改 listitem 字段

[英]Sharepoint change listitem field from c#

I need to update sharepoint list item url.我需要更新共享点列表项 url。 There is no errors but it does not work没有错误,但它不起作用

ClientContext context = new ClientContext("http://www.sharepoint-site");
List myList = context.Web.Lists.GetByTitle("myListName");
            
CamlQuery query = CamlQuery.CreateAllItemsQuery();
ListItemCollection items = myList.GetItems(query);
            
context.Load(items);
context.ExecuteQuery();

for (int i = 0; i < items.Count; i++)
{
    ListItem li = items[i];

    object obj = li.FieldValues["_x0421__x0441__x044b__x043b__x04"]; 
    //my field key
    FieldUrlValue url = (FieldUrlValue)obj;
    url.Url = url.Url.Replace("usr","users");
    li.FieldValues["_x0421__x0441__x044b__x043b__x04"] = url;

    li.Update();
    context.Load(li);
    context.ExecuteQuery();
}

Sharepoint 2010 version共享点 2010 版

For me the code works if I remove context.Load(li);对我来说,如果我删除context.Load(li); This line is not needed at all.根本不需要这条线。 Just call li.Update() and then context.ExecuteQuery();只需调用li.Update()然后调用context.ExecuteQuery();

for (int i = 0; i < items.Count; i++)
{
    ListItem li = items[i];

    object obj = li.FieldValues["_x0421__x0441__x044b__x043b__x04"]; 
    //my field key
    FieldUrlValue url = (FieldUrlValue)obj;
    url.Url = url.Url.Replace("usr","users");
    li.FieldValues["_x0421__x0441__x044b__x043b__x04"] = url;

    li.Update();
    context.ExecuteQuery();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM