2

我正在创建一个 Sharepoint 功能,该功能有一个与之关联的事件接收器。在事件接收器中,我正在使用服务器端对象模型创建文档库和图片库。我还在这些新创建的文档和图片库中添加了新的自定义列(大约 80 个)。现在我想修改默认情况下与图片库一起创建的描述、关键字和标题字段的属性。我想将这些字段设为必填字段。我该怎么做呢?我尝试设置 SPList.AllowContentTypes = true 并尝试更改这些字段的属性,但它不起作用(既不给出错误也不使这些必填字段)。我还尝试访问内容类型并尝试使用 SPContentType.FieldsLinks["Column_name"].Required 和 SPContentType 更改属性。Fields["Column_name"].Required 但它给了我一个错误。有没有人有任何其他建议?

4

4 回答 4

2

这里是答案......

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();
于 2011-11-04T03:54:26.380 回答
0

你能告诉我们你在尝试使用 fieldlinks 时遇到的错误吗?因为这应该工作......我已经这样做了:

SPContentType ct = web.Lists["*ListName*"].ContentTypes["*ContentTypeName*"];
SPFieldLinkCollection flinks = ct.FieldLinks;
flinks["*ColumnName*"].Required = true;
ct.update();
于 2011-11-03T12:03:40.770 回答
0

这应该可以解决问题:

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();
于 2011-11-03T18:59:31.097 回答
0

SPAallowContentTypes不可设置。您可以尝试设置ContentTypesEnabled

我没有要测试的 2010 框,但是如果SPAllowContentTypes返回 false,我认为您正在考虑修改 14 个配置单元 (TEMPLATE\FEATURES\PictureLibrary\PicLib) 中的图片库的定义以获得您想要的后。在那里轻轻地走。

于 2011-11-03T20:00:37.660 回答