1

在 SharePoint 中,许多字段 id-value 对的格式类似于以下 id;#value。这对于像多查找这样的字段更加复杂,在提取该字段的值时可以产生像 id_1;#value_1;#id_2;#value_2;#id_3;#value_3 这样的结果

我想知道是否有任何已知的内置函数可以简化此过程并至少从值中删除 ID。

4

2 回答 2

2

字段值对象作为字符串存储在 Sharepoint 数据库中。对于简单的值(例如“Hello world”),这很简单。但是对于复杂的字段值——例如 ID/值对,如何将整个值存储为单个字符串显然也更复杂。Sharepoint 中的每个字段值类都负责自己的存储实现。ToString()负责编写值的字符串表示;而字段值的构造函数接受一个字符串并负责解析它并适当地设置其自身的所有属性。

例如,SPFieldUrlValue(表示<a href="url">description</a>)具有 Url 和 Description 属性。创建一个新SPFieldUrlValue(string fieldValue)对象将解析该值并相应地设置属性。

为了获得字段值的真实/正确(通常是强类型!)表示,您必须知道该字段是什么类型,以及该字段的值类是什么。

于 2009-05-27T01:03:47.550 回答
2

SPField 类有许多派生

例如,假设查找字段类型(使用 ID;#value),您可以检查SPField.Type == SPFieldType.Lookup,然后将 SPField 转换为SPFieldLookup并使用其覆盖的方法来获取记录值。

有关更多详细信息,请参阅自定义字段值类

另外 - 如果我没记错(我现在无法检查这个所以 DYOR)你可以在基础 SPField 对象上调用 .ValueAsText 和 .ValueAsHtml ,它会从值中删除 ID;#。

于 2009-06-26T13:11:12.267 回答