Поле поиска как столбец сайта через CAML - PullRequest
0 голосов
/ 16 июля 2009

Я пытаюсь создать поле поиска в виде столбца сайта через CAML. Список, который я хочу использовать в качестве источника поиска, создан в Feature Receiver, поэтому я не знаю его идентификатор. Я прочитал несколько постов в блоге, которые указывают, что я могу просто указать путь к списку в атрибуте List. Из комментариев к этому посту видно, что это решение работает для некоторых людей, но не для других. Я в последней группе.

Когда я пытаюсь связать тип контента, который использует столбец сайта поиска I: «Исключение из HRESULT: 0x80040E07»

<Field 
  ID="{da94e56b-428f-4b95-b4c6-24aed0256475}" 
  Name="Test_x0020_Lookup_x0020_Column"
  StaticName="Test_x0020_Lookup_x0020_Column" 
  DisplayName="Test Lookup Column" 
  Type="Lookup" 
  Required="FALSE" 
  List="Lists/Test" 
  ShowField="Title" 
  PrependId="TRUE"
  Group="Test Site Columns" />

  <ContentType
    ID="0x0100B6D92594DDCE8E479D0EB0C414C463B0"
    Name="Test Lookup Content Type"
    Version="0"
    Group="Test Content Types">
    <FieldRefs>
      <FieldRef 
         ID="{da94e56b-428f-4b95-b4c6-24aed0256475}" 
         Name="Test_x0020_Lookup_x0020_Column" 
         Required="TRUE" />
    </FieldRefs>
  </ContentType>

Ответы [ 5 ]

3 голосов
/ 30 июля 2012

Обязательно добавьте это свойство при создании колонки сайта. Overwrite = "TRUE"

2 голосов
/ 16 июля 2009

Помещение Path в список в атрибуте List работает, я выполнил это в своем проекте и успешно. Одна вещь, которую я хотел, чтобы вы проверили, это порядок работы функции. Вы выполняете функции вручную? или используя их в файле onet.xml. Потому что, когда ваша функция типа контента выполняется, уже должен быть этот список для ссылки.

Также вы должны получить более подробную информацию в журналах SharePoint, которая присутствует в папке «Журналы». Попробуйте найти больше информации об ошибке, это поможет во многих случаях.

1 голос
/ 31 марта 2010

Название списка у меня тоже не работает.

Мне пришлось динамически создавать список и поисковый столбец с помощью Feature Activator. Как только я создаю Список поиска через объектную модель SharePoint, у вас есть Guid. Затем вы можете динамически создать столбец в списке, для которого требуется столбец поиска, используя существующий CAML, описанный выше, с помощью следующего метода:


string xml = // your CAML up top with a TOKEN to replace List="{TOKEN}"


SPList listWithLookupColumn = web
            .Lists
            .Add(url,description,SPListTemplateType.GenericList);

Guid listId  = listWithLookupColumn.ID;

xml = xml.Replace("TOKEN",listId);

// some code to find the list you want lookup column on
SPList listToAddLookupColumn = listRepository(listNameToFind); 

listToAddLookupColumn
    .AddFieldAsXml(xml,true,SPAddFieldOptions.AddToDefaultContentType)

1 голос
/ 25 января 2010

Список = "" должен быть уникальным GUID. Поскольку вы еще не знаете GUID, вам потребуется программно заменить его при создании списка.

Вот некоторая информация о том, как это сделать: http://www.sharepointtactics.com/blog/fix-lookup-fields-created-through-features.html

1 голос
/ 01 августа 2009

У меня была такая же проблема со списком, определенным в schema.xml. Я исправил это, убедившись, что в поле def и в файле schema.xml указан один и тот же путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...