2015-01-15 3 views
0
ClientContext ctx = new ClientContext(Site); 
ctx.Credentials = new NetworkCredential(userName, passWord, "dmz");    
List list = ctx.Web.Lists.GetByTitle(SpList); 
ListItemCollection items = list.GetItems(CamlQuery.CreateAllItemsQuery()); 
ctx.Load(items); // loading all the fields    
ctx.ExecuteQuery(); 
foreach (var item in items) 
{ 
    if (((FieldUrlValue)(item["VideoSetExternalLink"])).Url.ToString() != VideoURL) 
    { 
     ((FieldUrlValue)(item["VideoSetExternalLink"])).Url = vp.VideoURL; 
     item.Update(); 
    } 
} 
ctx.Load(items); 
ctx.ExecuteQuery(); 

Работы прекрасные NO ERROR. Но список не обновляется. Что я здесь делаю неправильно?SP2013 CSOM C# Список обновлений

ответ

0
ClientContext ctx = new ClientContext(Site); 
ctx.Credentials = new NetworkCredential(userName, passWord, "dmz");    
List list = ctx.Web.Lists.GetByTitle(SpList); 
ListItemCollection items = list.GetItems(CamlQuery.CreateAllItemsQuery()); 
ctx.Load(items); // loading all the fields    
ctx.ExecuteQuery(); 
foreach (var item in items) 
{ 
    if (((FieldUrlValue)(item["VideoSetExternalLink"])).Url.ToString() != VideoURL) 
    { 
     FieldUrlValue va = ((FieldUrlValue)(item["VideoSetExternalLink"])); 
     va.Url = vp.VideoURL; 
     item["VideoSetExternalLink"] = va; 
     item.Update(); 
    } 
} 
ctx.Load(items); 
ctx.ExecuteQuery(); 

This is how i Fixed the issue. 
0

Удалить последнюю ctx.Load (пункты), потому что вы не отправлять обновления на Sharepoint вместо вы перегрузочные пункты значения

ClientContext ctx = new ClientContext(Site); 
ctx.Credentials = new NetworkCredential(userName, passWord, "dmz");    
List list = ctx.Web.Lists.GetByTitle(SpList); 
ListItemCollection items = list.GetItems(CamlQuery.CreateAllItemsQuery()); 
ctx.Load(items); // loading all the fields    
ctx.ExecuteQuery(); 
foreach (var item in items) 
{ 
    if (((FieldUrlValue)(item["VideoSetExternalLink"])).Url.ToString() != VideoURL) 
    { 
     ((FieldUrlValue)(item["VideoSetExternalLink"])).Url = vp.VideoURL; 
     item.Update(); 
    } 
} 
ctx.ExecuteQuery(); 
+0

Это не сработало, она до сих пор не спасая изменения. –

+0

Я исправил проблему, создав объект FieldUrlValue и назначив значение, затем изменив объект, а затем передаст его обратно в элемент. например: FieldUrlValue va = ((FieldUrlValue) (элемент ["VideoSetExternalLink"])); va.Url = vp.VideoURL; item ["VideoSetExternalLink"] = va; Спасибо за вашу помощь. –

Смежные вопросы