【问题标题】:Sharepoint 2010 Metadata fields Key, ValueSharepoint 2010 元数据字段键、值
【发布时间】:2011-09-15 03:29:05
【问题描述】:

我目前正在使用 Sharepoint 2010 和 Sharepoint API 创建包含一些现有文档列表的文档库。

我创建了一个 WinForm 循环遍历给定的文档列表,然后根据文档的“Type(A metadata field)”将它们添加到不同的文档库中。通过读取特定文档的“元数据字段”来确定类型。通过创建HashtableSPFields 来读取元数据字段

  • 问题

当读取文档元数据字段以确定“类型”时,我意识到元数据字段“类型”(Key) 实际上提取为“类型+TaxHTField0”,Key 的值提取为值|GUID

因此,例如,如果我的元数据字段在从 API 返回时被称为 Doc_x0020_Type,它会显示为 Doc_x0020_TypeTaxHTField0,则此值应该只是 'products',但它显示为

products|21EC2020-3AEA-1069-A2DD-08002B30309D

是否有我们可以在 sharepoint 中设置的设置来消除为元数据字段的键和值添加额外的字符和 GUID?

以下是我为纠正问题所做的工作,但想知道这是否是我们可以在 sharepoint 中设置的设置

    public String GetLibrary(Hashtable itemProperties)
    {
        String typeMetaField = "Doc_x0020_TypeTaxHTField0";
        String sKey = String.Empty;
        foreach (DictionaryEntry deEntry in itemProperties)
        {
            sKey = deEntry.Key.ToString();
             if (sKey == typeMetaField){
                _type = deEntry.Value.ToString();
                string[] value = _type.Split('|');
                _type = value[0].Trim();

            }
        }

        return GetDocumentLibrary(_type);
    }

【问题讨论】:

    标签: sharepoint sharepoint-2010 sharepoint-api


    【解决方案1】:

    这是设计使然。

    如果您将分类字段添加到您自己的内容类型(例如名为“MyTaxField”),SharePoint 将自动生成一个隐藏的“备注”字段,其中包含您在 UI 中选择的值的标签和 guid。

    这在使用 SPSiteDataQuery 时非常有用,因为它会为允许多个值的分类字段返回空值(尽管适用于单值分类字段)。

    获取分类值的唯一方法是使用名为“MyTaxFieldTaxHTField0”的隐藏字段。

    但正如您所发现的,此字段的格式可能不是您想要的:)。

    我没有对此进行测试,但您是否检查过您的内容类型是否包含名为“Doc_x0020_Type”的字段(可能是 TaxonomyFieldValue(Collection) 类型)?

    【讨论】:

    • 是的,它确实包含“Doc_x0020_Type”,这正是我所追求的。感谢 cmets..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多