Нежелательные персонажи, появляющиеся перед автором в результатах поиска
-
09-12-2019 - |
Вопрос
При запуске моего SPSTALATAQUERY (код ниже) я, кажется, получает 1; # до фактического имени автора.Кто-нибудь может указать мне правильное направление к объяснению этого, пожалуйста?
SPSiteDataQuery query = new SPSiteDataQuery();
query.Lists = @"<Lists ServerTemplate='850' Hidden='TRUE' />";
query.ViewFields = @"<FieldRef Name=""Title"" /><FieldRef Name=""Author"" />";
query.Webs = @"<Webs Scope='SiteCollection'/>";
query.Query = @"<Where>
<BeginsWith>
<FieldRef Name='ContentTypeId'/>
<Value Type='Text'>[LONG GUID]</Value>
</BeginsWith>
</Where>";
query.RowLimit = 10;
DataTable dt = web.GetSiteData(query);
.
Так в каждом дт у меня будет: "1; #daniel mcnulty" в столбце автора например.
Решение
Когда вы запрашиваете контент, вы собираетесь вернуть его в свой фактический формат.Для некоторых полей, таких как поля поиска и пользовательские поля, тип данных на самом деле является многоуровневым и будет использовать такой формат.Если вы ищете просто имя отображения, просто отформатируйте значение так, как вы хотите.
Другие советы
Столбец автор использует spfieldlookup для пользователяСписок информации.
SharePoint 2007 и 2010 год часто используют; # как внутренний разделитель на их полях данных.SPSTICETATATAQUERY Возвращает внутренние значения данных, как правило, если вы найдете a; # там будет встроенный класс, который обрабатывает преобразование для вас.
Вы можете использовать SPFIELDLOOKUPValue класс для обработкиСоответствующий раздел строки.
string authorField = item["Author"].ToString();
SPFieldLookupValue authorValue = new SPFieldLookupValue(authorField);
// The account Login Name of the author
authorValue.LookupValue
// The User Information List ID of the user
authorValue.LookupId
.
В зависимости от того, что вы пытаетесь сделать идентификатор, может быть более полезен, чем имя входа.
Для рендеринга DataTable в SPDataGrid вы можете использовать шаблоны элементов для преобразования значений в более полезный формат, например,Ссылка на профиль пользователей.