Нежелательные персонажи, появляющиеся перед автором в результатах поиска

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/38829

  •  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 вы можете использовать шаблоны элементов для преобразования значений в более полезный формат, например,Ссылка на профиль пользователей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top