【问题标题】:Update/Change custom TaxonomyFieldValue in document library list in sharepoint using C# CSOM使用 C# CSOM 在共享点的文档库列表中更新/更改自定义 TaxonomyFieldValue
【发布时间】:2018-04-23 10:54:43
【问题描述】:

包含名为主题的自定义分类字段列的文档列表。 需要更新数千条记录/文档的主题。 请任何想法使用 C# CSOM 以编程方式更新分类字段等主题

【问题讨论】:

  • 你试过什么?给我们看一些代码。
  • 谢谢,我解决了问题

标签: sharepoint sharepoint-2013 custom-taxonomy sharepointdocumentlibrary taxonomy-terms


【解决方案1】:

请尝试使用此方法:

public void UpdateTaxonomyField(ClientContext ctx, List list,ListItem listItem,string fieldName,string fieldValue)
        {
            Field field = list.Fields.GetByInternalNameOrTitle(fieldName);
            TaxonomyField txField = clientContext.CastTo<TaxonomyField>(field);
            TaxonomyFieldValue termValue = new TaxonomyFieldValue();
            string[] term = fieldValue.Split('|');
            termValue.Label = term[0];
            termValue.TermGuid = term[1];
            termValue.WssId = -1;
            txField.SetFieldValueByValue(listItem, termValue);
            listItem.Update();
            ctx.Load(listItem);
            ctx.ExecuteQuery();
        }

【讨论】:

    【解决方案2】:
       public static void UpdateListofLibraryHavingTaxonomyField()
        {
            string siteUrl = "http://abc:55555/sites/xyz/";
            string libName = "Knowledge Repos";
            string strTermGuid = "Your new/update term guid";
            try
            {
                Dictionary<string, string> dictIdsSubjectsChange = ReadFromExcel();//Here to read all records (approx 2000 records) that we want to change
                ClientContext clientContext = new ClientContext(siteUrl);
                List list = clientContext.Web.Lists.GetByTitle(libName);
                FieldCollection fields = list.Fields;
                Field field = fields.GetByInternalNameOrTitle("Subject1");
                ListItemCollection listItems = list.GetItems(CamlQuery.CreateAllItemsQuery());
                clientContext.Load(listItems, items => items.Include(i => i["Subject1"], i => i["ID"]));
                clientContext.Load(fields);
                clientContext.Load(field);
                clientContext.ExecuteQuery();
                TaxonomyField txField = clientContext.CastTo<TaxonomyField>(field);               
                TaxonomyFieldValue termValue = null;
                if (dictIdsSubjectsChange != null)
                {
                    foreach (ListItem listItem in listItems)//Loop through all items of the document library 
                    {
                        string strCurrentID = "0";
                        try
                        {
                            strCurrentID = listItem["ID"].ToString();
                        }
                        catch (Exception) { }                      
                        if (dictIdsSubjectsChange.ContainsKey(strCurrentID))//Checking to change ot not
                        {
                            termValue = new TaxonomyFieldValue();
                            termValue.Label = "Special Knowledge";
                            termValue.TermGuid = strTermGuid;
                            termValue.WssId = 246;
                            txField.SetFieldValueByValue(listItem, termValue);
                            listItem.Update();
                            clientContext.Load(listItem);
                        }
                    }
                    clientContext.ExecuteQuery();
                }
            }
            catch (Exception ex) { }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      相关资源
      最近更新 更多