Поле поиска Sharepoint и WebId = " - PullRequest
       13

Поле поиска Sharepoint и WebId = "

5 голосов
/ 14 сентября 2011

Я пытаюсь добавить поле поиска в тип контента.Поле имеет следующее определение:

<Field ID="{c80e8e3c-7124-4772-a39d-5b69f131d542}"
         Name="Site"
         Group="Tieto Intranet Columns"
         Type="Lookup"
         DisplayName="Site"
         StaticName="Site"
         List="Lists/FavoriteSites"
         ShowField="Title"
         PrependId="TRUE"
         WebId="~sitecollection"
   >

В области семейства сайтов существует список избранных сайтов, на который я хочу ссылаться в этом поле поиска.Развертывание проходит нормально, но когда я создаю список на основе типа контента с этим поиском, создается впечатление, что поле поиска не связано со списком избранных сайтов.Я добавляю некоторые данные в FavoriteSites и затем пытаюсь добавить что-то во второй список с полем поиска на FavoriteSites.К сожалению, выпадающий список, который должен показывать мне данные из списка FavoriteSites, пуст.

Когда я вручную создаю новый поисковый столбец для FavoriteSites, все в порядке.

У кого-нибудь есть идеи, где могут возникнуть проблемы в этом определении поиска?

ОБНОВЛЕНИЕ:

Как рекомендовал Рич, я установил уровень ведения журнала в Verbose и нашел это сообщение:

Не удалось найти атрибуты WebId = ~ sitecollection и List = Lists / FavoriteSites, указанные для поля {c80e8e3c-7124-4772-a39d-5b69f131d542} в функции {d86c7005-d31d-43ae-b86b-38f28b81072e}.Set List = {39CEC23E-FB28-47B3-BC36-C21780AD1D94}.

Я не понимаю этого, поскольку существует список FavoriteSites.Список избранных сайтов, а также второй список с полем «Сайт» развернуты одной функцией в области семейства сайтов.

Я не могу указать список при поиске по идентификатору GUID, поскольку не знаю guid во время развертывания.

Ответы [ 3 ]

4 голосов
/ 14 сентября 2011

Что означает это сообщение журнала, так это то, что Lists / FavoriteSites не существует ни на корневом сайте семейства сайтов, ни на сайте, где активируется функция (если последний является дочерним сайтом).

Если списки / избранные сайты создаются функцией, убедитесь, что она активирована, прежде чем ваша функция поля.Поместите элемент ListInstance прямо над элементом Field, если это необходимо.Но сообщение ясно: список не существует в то время, когда ваше настраиваемое поле предоставляется семейству сайтов.И именно поэтому он не работает.

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

PS Я нашел это, проверив "документацию" для метода Microsoft.SharePoint.SPFieldElement.PerformFixUpIfLookUpField.

1 голос
/ 15 июня 2013

У меня была такая же проблема. В итоге моя проблема заключалась в том, что вы не можете декларативно ссылаться на список, который находится в корневой сети. Токен ~ sitecollection в свойстве WebId не работает, поскольку он будет записывать Guid между фигурными скобками, в то время как SharePoint ожидает его без фигурных скобок (объяснение можно найти на http://martensboarterstun.wordpress.com/2013/06/15/how-to-create-a-list-definition-with-a-lookup-field-declaratively/).. В итоге я поместил Rootweb ID в определение моего списка.

1 голос
/ 14 сентября 2011

Попробуйте изменить поле списка на идентификатор списка, например, List="{4641f5f2-b358-4805-9d7d-e910d2243fb5}"

Я бы также рекомендовал использовать SharePointManager , чтобы просмотреть определение поля созданного вручную поля и легконайти цветущие направляющие списков и т. д.

...