Создайте новое поле и обновите тип контента (и все реализации) - PullRequest
2 голосов
/ 04 февраля 2009

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

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

Что было бы лучшим / самым чистым (и наиболее пригодным для повторного использования) решением для этого?

Ответы [ 3 ]

0 голосов
/ 04 февраля 2009

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

С точки зрения повторного использования, если вы настраиваете свойства в файле feature.xml , вы можете использовать их для настройки таких вещей, как имя столбца, тип столбца, тип целевого содержимого и т. Д., А затем иметь класс, который может быть повторно использован в будущем.

0 голосов
/ 21 августа 2012

Вы смотрели на http://msdn.microsoft.com/en-us/library/ee537575.aspx,, в частности тег < AddContentTypeField>? Это было бы декларативным способом сделать это.

0 голосов
/ 04 февраля 2009

Простой способ сделать это в приемнике объектов, получить ссылку на SPContentType, добавить поле в виде XML (SPContentType.Fields.AddFieldAsXml), а затем обновить, передав изменения в дочерние типы контента

Действительно сложно изменить типы контента на уже существующем сайте. Мой предпочтительный метод предполагает наличие решения для всех типов контента и повторное развертывание этого решения после внесения изменений.

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