Я создаю функцию Sharepoint, с этой функцией связан приемник событий. В приемнике событий я создаю библиотеку документов и библиотеку изображений, используя объектную модель на стороне сервера. Я также добавляю новые настраиваемые столбцы (около 80) в эти вновь созданные библиотеки документов и изображений. Теперь я хочу изменить свойства полей «Описание», «Ключевые слова» и «Заголовок», которые по умолчанию создаются вместе с библиотекой изображений. Я хочу сделать эти поля обязательными. Как мне это сделать? Я пытался установить SPList.AllowContentTypes = true и попытаться изменить атрибуты этих полей, но это не работает (ни выдает ошибку, ни делает эти обязательные поля). Я также пытался получить доступ к типам контента и попытаться изменить атрибуты, используя SPContentType.FieldsLinks["Column_name"].Required и SPContentType.Fields["Column_name"].Required, но это дает мне ошибку. У кого-нибудь есть другие предложения?
Sharepoint 2010 — сделать поля «Заголовок», «Описание» и «Ключевое слово» обязательными полями в библиотеке изображений с использованием объектной модели сервера
Ответы (4)
Вот ответ....
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();
person
xgencoder
schedule
04.11.2011
Можете ли вы рассказать нам об ошибке, которую вы получили при попытке использовать fieldlinks? Потому что это должно работать... Я сделал это так:
SPContentType ct = web.Lists["*ListName*"].ContentTypes["*ContentTypeName*"];
SPFieldLinkCollection flinks = ct.FieldLinks;
flinks["*ColumnName*"].Required = true;
ct.update();
person
Tjassens
schedule
03.11.2011
попробовал, он жалуется, что поле «Описание» недоступно в библиотеке изображений ... Оно действительно существует, не знаю, как обращаться с полем «Описание».
- person xgencoder; 03.11.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();
person
Pedro Fonseca
schedule
03.11.2011
Это получает те поля библиотеки, которые требуются для экземпляра списка, но не для типа содержимого! Я неправильно понял ваш вопрос!
- person Pedro Fonseca; 04.11.2011
Параметр SPAllowContentTypes установить нельзя. Вместо этого вы можете попробовать установить ContentTypesEnabled.
У меня нет коробки 2010 года для тестирования, но если SPAllowContentTypes возвращает false Я думаю, вы пытаетесь изменить определение вашей библиотеки изображений в улье 14 (TEMPLATE\FEATURES\PictureLibrary\PicLib), чтобы получить то, что вам нужно. Смело ступайте туда.
person
vinny
schedule
03.11.2011
SPField.Required
наtrue
- person Dennis G   schedule 03.11.2011