我目前正在使用Sharepoint 2010和Sharepoint API创建包含一些现有文档列表的文档库。
我创建了一个WinForm,它循环遍历给定的文档列表,然后根据文档的“类型(元数据字段)”将它们添加到不同的文档库中。通过阅读特定文档的“元数据字段”来确定类型。通过创建Hashtable
SPFields
来读取元数据字段
当读取文档元数据字段以确定'类型'时,我意识到元数据字段'类型'(Key)
实际上拉出'Type + TaxHTField0'并且Key
的值拉出作为值| GUID
例如,如果我的元数据字段在从API返回时被调用Doc_x0020_Type
,则它显示为Doc_x0020_TypeTaxHTField0
,其值应该只是'products'
,但它出现为< / p>
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);
}
答案 0 :(得分:0)
这是设计的。
如果您将分类法字段添加到您自己的内容类型(例如名为“MyTaxField”),SharePoint将自动生成一个隐藏的“Notes”字段,其中包含您在UI中选择的值的标签和guid。
这在使用SPSiteDataQuery时非常有用,因为它将为允许多个值的分类法字段返回空值(尽管可以使用单值分类法字段)。
获取分类值的唯一方法是使用名为“MyTaxFieldTaxHTField0”的隐藏字段。
但正如您所发现的,此字段可能不会像您那样格式化:)。
我没有对此进行过测试,但您是否检查过您的contenttype是否包含名为“Doc_x0020_Type”的字段(可能是TaxonomyFieldValue(Collection)类型)?