只有一个文件夹的Sharepoint客户端对象模型更新属性

本文关键字:对象模型 更新 属性 客户端 Sharepoint 有一个 文件夹 | 更新日期: 2024-10-22 09:03:33

我正在编写一个sharepoint客户端对象模型代码。"用户详细信息文件夹"中有一个名为"John Details"的文件夹。我正在尝试更新"John Details"文件夹的2个属性。我该怎么做?

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(); 
}

只有一个文件夹的Sharepoint客户端对象模型更新属性

如果我正确理解您的问题,您希望更新文件夹的相关列表项属性。如果是这样,您可以考虑以下方法:

  • 使用Web.GetFolderByServerRelativeUrl方法按url获取文件夹
  • 使用Folder.ListItemAllFields属性获取关联的列表项
  • 更新列表项属性

示例

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(); 
}

如果这对你有用,请标记为答案。