Добавьте тип содержимого из Sandboxed Solution для определения списка (фермерское решение) не работает
-
09-12-2019 - |
Вопрос
Я использую решение для песочницы из 3-го вендора для вечеринок, который содержит несколько столбцов сайта и тип содержимого сайта.
Я хочу добавить этот тип содержимого в мое определение библиотеки документов в CAML.
Но когда я добавляю ссылку на этот тип контента в моем
.
<List ... EnableContentTypes="TRUE">
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x0101002EFF4F6709F446E5AD064DC20BBE6855" />
<!--contenttypeid of content type from sandboxed solution-->
<ContentTypeRef ID="0x0101" />
<!--contenttypeid of Document-->
...
</ContentTypes>
...
</MetaData>
</List>
Тип содержимого не добавляется в мою библиотеку, когда я создаю его экземпляр. (Я создал эту библиотеку документов после активации решения для песочницы, конечно, Еще хуже на самом деле, я получаю следующее сообщение об ошибке:
Был найден дубликат имени типа содержимого «Документ».
У меня есть основания полагать, что это связано с тем, что SP-то как-то не может найти тип контента с песком и думает, что это тип дочернего содержания документа. Таким образом, он добавляет тип содержимого документа в два раза в мой список с этим сообщением об ошибке в результате.
Я просто не понимаю, почему он не добавляет тип контента из песочкового решения?
Ведь я вижу этот тип содержимого на типов содержимого сайта (коллекции), и я могу добавить тип содержимого через UI в ту же библиотеку документов без ссылки на этот тип содержимого «песочника».
Обновление: Я попытался добавить только тип контента поставщиков тремя вечеринка в определение библиотеки документов, и теперь добавляется только 1 «Документ» Тип контента.
На самом деле он создает тип содержимого списка под названием «Документ», который наследует от типа содержимого сайта поставщиков 3-го вечеринок.
Таким образом, следующий список списков отображается информация содержимого:.
- Имя: Документ
- Описание: Создать новый документ
- родитель: {3-й тип контента сайта поставщика поставщика Vendor}
и столбцы сайта из типа содержимого сайта были скопированы.
К сожалению, это не обновляет имя типа списка содержимого.Пожалуйста, поделитесь любыми подсказками, которые у вас могут быть ...
Решение
It seems that list has its own internal content type or at the very least, its own set of fields, which is creating the problem. Try investigating the list with the SharePoint Manager 2007/2010.
The alternative approach could be to use ContentTypeBinding
element to bind multiple ContentTypes.
<ContentTypeBinding
ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B401"
ListUrl="MyDocLibrary"
/>
<ContentTypeBinding
ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B402"
ListUrl="MyDocLibrary"
/>
<ContentTypeBinding
ContentTypeId="0x010100AA8705BBBC554342BC1396AB7FB723B403"
ListUrl="MyDocLibrary"
/>
ContentTypeBinding elements that are responsible for linking the multiple content types share a common parent i.e. 0x0101
, which means ancestor of this type is the base Document content type.