【问题标题】:Sharepoint Client Object Model Updating Property of a only one folderSharepoint 客户端对象模型更新属性只有一个文件夹
【发布时间】:2015-03-07 09:47:32
【问题描述】:

我正在编写一个共享点客户端对象模型代码。 “用户详细信息文件夹”中有一个名为“约翰详细信息”的文件夹。 我正在尝试更新“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(); 
}

【问题讨论】:

  • 为什么是向下箭头?我有什么错误吗?
  • 请尝试重新构建您的问题。这是无法理解的。

标签: c# sharepoint sharepoint-clientobject


【解决方案1】:

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

示例

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

【讨论】:

  • 此属性是一个电子邮件 ID。我们可以使用此文件夹属性来用于共享点通知吗?
  • 查询 - 通常文件夹内容类型由 Microsoft 密封。我想知道您在使用浏览器时是否可以编辑这些电子邮件列?
  • 这仅适用于 Sharepoint 2013+ on 2010 ListItemAllFields 不针对文件夹公开。
  • 这不适用于 2010。我需要进行哪些更改才能使用 2010?
【解决方案2】:

这是只更新一个文件夹中的项目的代码

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

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

【讨论】:

    猜你喜欢
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 2015-12-26
    • 1970-01-01
    相关资源
    最近更新 更多