sharepoint - 如何将术语添加到 TermCollection(分类字段)

标签 sharepoint taxonomy

在 sharePoint 2010 中,我想设置文档字段的分类值。该字段可以采用多个分类术语。

我这样做的方式是错误的,因为 TermCollection 类中 taxoTerms.Concat(terms) 的转换失败:

    TaxonomyField taxoField = file.Item.Fields.GetFieldByInternalName(entry.Key) 
              as TaxonomyField;
    
    TaxonomySession taxoSession = new TaxonomySession(web.Site);

    TermStore store = taxoSession.TermStores[taxoField.SspId];

    TermSet termSet = store.GetTermSet(taxoField.TermSetId);

    if (taxoField.AllowMultipleValues)
    {   
        string[] taxoValues = entry.Value.Split(';');

        TermCollection taxoTerms = termSet.GetTerms(taxoValues[0], true);
                                            
        for (int j = 1; j < taxoValues.Length; j++)
        {
            TermCollection terms = termSet.GetTerms(taxoValues[j], true);

            if (terms.Count > 0)
            {
                taxoTerms = (TermCollection)taxoTerms.Concat(terms);
            }
        }

        taxoField.SetFieldValue(file.Item, taxoTerms); 
    }

您知道如何将术语添加到我的 TermCollection 对象中,以便我可以将术语值保存在字段中吗?

最佳答案

我找到了解决方案。这是:

TaxonomyField taxoField =
    file.Item.Fields.GetFieldByInternalName(entry.Key) as TaxonomyField;

TaxonomySession taxoSession = new TaxonomySession(web.Site);

TermStore store = taxoSession.TermStores[taxoField.SspId];

TermSet termSet = store.GetTermSet(taxoField.TermSetId);

if (taxoField.AllowMultipleValues)
{   
    string[] taxoValues = entry.Value.Split(';');

    TermCollection terms = termSet.GetAllTerms();

    List<string> taxonomyValueList = taxoValues.ToList<string>();

    TaxonomyFieldValueCollection fieldValues = new TaxonomyFieldValueCollection(taxoField);

    foreach (Term term in terms)
    {
        if (taxonomyValueList.Contains(term.Name))
        {
            TaxonomyFieldValue fieldValue = new TaxonomyFieldValue(taxoField);

            fieldValue.TermGuid = term.Id.ToString();
            fieldValue.Label = term.Name;
            fieldValues.Add(fieldValue);
        }
    }

    taxoField.SetFieldValue(file.Item, fieldValues);
} 

希望对其他人有帮助。

关于sharepoint - 如何将术语添加到 TermCollection(分类字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8329507/

相关文章:

javascript - 阅读 SharePoint 分类术语库和 getDefaultLabel(lcid)

c# - 有没有动态网络服务引用?

html - 为什么当我在其中输入文字时,div 会被其他 div 重叠?

sharepoint - 功能装订与站点定义

php - WP_Querytax_query多个分类法和术语

grails - 如何使用 grails 分类插件向分类单元添加层次结构?

sharepoint - SPWeb.Url 返回错误的 URL

javascript - SharePoint 日期和 JavaScript

mysql - WordPress:如何从自定义分类查询中排除子分类中的帖子?

tags - 如何对生命、宇宙、万物进行标记和分类?