Sharepoint 2010 - сделать поля «Заголовок», «Описание» и «Ключевое слово» необходимыми полями в библиотеке изображений, используя объектную модель сервера - PullRequest
2 голосов
/ 03 ноября 2011

Я создаю функцию Sharepoint, с этой функцией связан получатель событий. В получателе событий я создаю библиотеку документов и библиотеку изображений, используя объектную модель на стороне сервера. Я также добавляю новые пользовательские столбцы (около 80) в недавно созданную библиотеку документов и изображений. Теперь я хочу изменить свойства полей Description, Keywords и Title, которые по умолчанию создаются вместе с библиотекой изображений. Я хочу сделать эти поля обязательными для заполнения. Как мне это сделать? Я попытался установить SPList.AllowContentTypes = true и попытаться изменить атрибуты этих полей, но это не работает (ни выдает ошибку, ни делает эти обязательные поля). Я также попытался получить доступ к типам содержимого и попытаться изменить атрибуты с помощью SPContentType.FieldsLinks ["Column_name"]. Required и SPContentType.Fields ["Column_name"]. Требуется, но это выдает ошибку. У кого-нибудь есть другие предложения?

Ответы [ 4 ]

2 голосов
/ 04 ноября 2011

Вот ответ ....

SPContentType ct = mypiclib.ContentTypes["Picture"];
SPFieldLinks titleLink = ct.FieldLinks["Title"];
SPFieldLinks descLink = ct.FieldLinks["comments"]; //internal name of Description
SPFieldLinks keywords = ct.FieldLinks["keywords"];
titlelink.Required = true;
descLink.Required = true;
keywords.Required = true;
ct.Update();
0 голосов
/ 03 ноября 2011

Это должно сработать:

SPWeb yourWeb =  ... //assign your web
SPList yourPictureLibrary = ... //assign your picture library

web.AllowUnsafeUpdates = true;
yourPictureLibrary.Fields[SPBuiltInFieldId.Title].Required = true;
yourPictureLibrary.Fields[SPBuiltInFieldId.Description].Required = true;
yourPictureLibrary.Fields[SPBuiltInFieldId.Keywords].Required = true;
yourPictureLibrary.Update();
0 голосов
/ 04 ноября 2011

SPAllowContentTypes не устанавливается. Вместо этого вы можете попробовать установить ContentTypesEnabled .

У меня нет бокса 2010 года для тестирования, но если SPAllowContentTypes возвращает false, я думаю, что вы смотрите на изменение определения библиотеки изображений в кусте 14 (TEMPLATE \ FEATURES \ PictureLibrary \ PicLib), чтобы получить то, что вы ищете. Ступай слегка там.

0 голосов
/ 03 ноября 2011

Можете ли вы сказать нам ошибку, которую вы получили при попытке использовать полевые ссылки? Потому что это должно работать ... Я сделал это так:

SPContentType ct = web.Lists["*ListName*"].ContentTypes["*ContentTypeName*"];
SPFieldLinkCollection flinks = ct.FieldLinks;
flinks["*ColumnName*"].Required = true;
ct.update();
...