Удаление «; #» из данных SharePoint ListItem - PullRequest
1 голос
/ 27 мая 2009

В SharePoint много полей идентификаторов-пар полей, которые форматируются как следующий идентификатор: #value. Это дополнительно усложняется полями типа multi-lookup, где при извлечении значения этого поля могут быть получены результаты, подобные id_1; # value_1; # id_2; # value_2; # id_3; # value_3

Мне интересно, есть ли какая-либо известная встроенная функция, которая упростит этот процесс и, по крайней мере, удалит идентификаторы из значения.

Ответы [ 2 ]

2 голосов
/ 26 июня 2009

Класс SPField имеет много производных классов

Например, предполагая тип поля «Уточняющий запрос» (который использует идентификатор; #value), вы можете проверить SPField.Type == SPFieldType.Lookup, а затем привести SPField к SPFieldLookup и использовать его переопределенные методы для получения значения записей.

Подробнее см. Классы значений пользовательских полей

Также - Если я правильно помню (я не могу проверить это прямо сейчас, поэтому DYOR) вы можете вызвать .ValueAsText и .ValueAsHtml для базового объекта SPField, и он удалит ID; # из значений.

2 голосов
/ 27 мая 2009

Объекты значений полей хранятся в виде строк в базе данных Sharepoint. Для простых значений (например, «Hello world») это достаточно просто. Но для сложных значений полей - таких как пара ID / значение, способ хранения всего значения в виде одной строки, очевидно, также является более сложным. Каждый класс значений поля в Sharepoint отвечает за собственную реализацию хранилища. ToString() отвечает за запись строкового представления значения; в то время как конструктор значения поля принимает строку и отвечает за ее синтаксический анализ и установку всех свойств для себя соответствующим образом.

Например, SPFieldUrlValue (который представляет <a href="url">description</a>) имеет свойства Url и Description. Создание нового объекта SPFieldUrlValue(string fieldValue) проанализирует значение и соответственно установит свойства.

Чтобы получить истинное / правильное (и часто строго типизированное!) Представление значения поля, вы должны знать, к какому типу относится поле, и каков класс значений этого поля.

...