在SharePoint中,许多字段的id-value对的格式如下所示; #value。对于多重查找等字段,这一点更加复杂,在提取该字段的值时,可以产生类似id_1;#value_1;#id_2;#value_2;#id_3;#value_3
的结果我想知道是否有任何已知的内置函数可以简化此过程,并至少从值中删除ID。
答案 0 :(得分:2)
字段值对象在Sharepoint数据库中存储为字符串。对于简单值(例如“Hello world”),这很简单。但是对于复杂的字段值 - 例如ID /值对,如何将整个值存储为单个字符串显然也更复杂。 Sharepoint中的每个字段值类都负责其自己的存储实现。 ToString()
负责编写值的字符串表示形式;而字段值的构造函数接受一个字符串,并负责解析并适当地设置自身的所有属性。
例如,SPFieldUrlValue(代表<a href="url">description</a>
)具有Url和Description属性。创建新的SPFieldUrlValue(string fieldValue)
对象将解析该值并相应地设置属性。
为了获得字段值的真实/正确(通常是强类型!)表示,您必须知道该字段的类型以及该字段的值类是什么。
答案 1 :(得分:2)
SPField class has many derived classed
例如假设一个Lookup字段类型(使用ID; #value),您可以检查SPField.Type == SPFieldType.Lookup,然后将SPField强制转换为SPFieldLookup并使用其overriden方法获取记录价值。
有关详细信息,请参阅Custom Field Value Classes
另外 - 如果我没记错的话(我现在无法检查这个DYOR)你可以在基础SPField对象上调用.ValueAsText和.ValueAsHtml,它将从值中删除ID;#。