Обновление объектной модели клиента Sharepoint Свойство только одной папки

Я работаю над кодом клиентской модели sharepoint. В папке "User Details Folder" есть папка "John Details". Я пытаюсь обновить 2 свойства для папки "John Details". Как я могу это сделать?

Public Void UpdateColumnsForOnlyOneFolder(maildId1,mailId2){
               ClientContext ctx = new ClientContext("http://mytestsite/");

                List list = ctx.Web.Lists.GetByTitle("User Details");
                Microsoft.SharePoint.Client.ListItemCollection items = list.GetItems(CamlQuery.CreateAllItemsQuery());
                ctx.Load(items); 
                ctx.ExecuteQuery();

                foreach (var item in items)
                {
                    item["email1"] = mailId1;              
                    item["email2"] = mailId2;              
                    item.Update();
                }
                ctx.ExecuteQuery(); 
}

2 ответа

Решение

Если я правильно понял ваш вопрос, вы хотели бы обновить свойства элемента списка, связанного с папкой. Если это так, вы можете рассмотреть следующий подход:

пример

using (var ctx =  new ClientContext(webUri))
{
   var web = ctx.Web;

   var folder = web.GetFolderByServerRelativeUrl("/site/Documents/folder/sub folder");
   var listItem = folder.ListItemAllFields;
   listItem["PropertyName"] = "PropertyValue";
   listItem.Update();
   ctx.ExecuteQuery();
}

Вот код, который будет обновлять только элементы одной папки

Public Void UpdateColumnsForOnlyOneFolder(maildId1,mailId2){
               ClientContext ctx = new ClientContext("http://mytestsite/");

                List list = ctx.Web.Lists.GetByTitle("User Details");
         CamlQuery spQuery = CamlQuery.CreateAllItemsQuery();
                spQuery.FolderServerRelativeUrl = "Enter Relative URL TO FOLDER"  // Example "/managedpath/site/Lists/listname/Folder Name"
                Microsoft.SharePoint.Client.ListItemCollection items = list.GetItems(spQuery);
                ctx.Load(items); 
                ctx.ExecuteQuery();

                foreach (Microsoft.SharePoint.Client.ListItem item in items)
                {
                    item["email1"] = mailId1;              
                    item["email2"] = mailId2;              
                    item.Update();
                }
                ctx.ExecuteQuery(); 
}

Пожалуйста, отметьте как ответ, если это работает для вас.

Другие вопросы по тегам