Данные пользователя SharePoint и синтаксис; # в возвращаемых данных - PullRequest
2 голосов
/ 01 сентября 2009

Может ли эксперт по SharePoint объяснить мне # данные, возвращаемые при вызове GetListItems () веб-службы Lists?

Мне кажется, я понимаю, что они здесь делают. ; # Почти как синтаксис для комментирования ... или еще лучше, включая фактические данные (строку), а не только идентификатор. Таким образом, вы можете использовать любой из них, но они хорошо спарены в одном столбце.

Я далеко от базы? Я просто не могу понять немного другое использование. Например

I have a list with:    
ows_Author  
658;#Tyndall, Bruno    
*in this case the 658 seems to be an ID for me in a users table somewhere*

ows_CreatedDate (note: a custom field. not ows_Created)    
571;#2009-08-31 23:41:58    
*in this case the 571 seems to be an ID of the row I'm already in. Why the repetition?*   

Может ли кто-нибудь пролить свет на этот аспект SharePoint?

Ответы [ 2 ]

8 голосов
/ 01 сентября 2009

Строка ;# используется в качестве разделителя для полей поиска SharePoint, включая пользовательские поля. При работе с объектной моделью вы можете использовать SPFieldLookupValue и SPFieldUserValue для преобразования строки с разделителями в строго типизированный объект. Однако, работая с веб-сервисами, я считаю, что вам нужно разобрать строку самостоятельно.

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


Николас правильно отмечает, что этот разделитель также используется для других значений составного поля, включая ...

  • SPFieldLookupValueCollection
  • SPFieldMultiColumnValue
  • SPFieldMultiChoiceValue
  • SPFieldUserValueCollection
3 голосов
/ 01 сентября 2009

SPFieldUser наследуется от SPFieldLookup, который использует обозначение; #. Вы можете легко проанализировать значение, создав новый экземпляр класса SPFieldLookupValue:

string rawValue = "1;#value";
SPFieldLookupValue lookupValue = new SPFieldLookupValue(rawValue);
string value = lookupValue.LookupValue; // returns value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...