我创建了一个继承自OOTB SharePoint 图片内容类型的自定义内容类型。我所做的唯一自定义是添加一个简单的URL字段,并删除基类型上的两个字段。见下文:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Parent ContentType: Picture (0x010102) -->
<ContentType ID="0x0101020027f16ab27e6e45a6848c25c47aaa7053"
Name="Custom Picture"
Description=""
Group="Custom"
Inherits="TRUE"
Version="0">
<FieldRefs>
<RemoveFieldRef ID="{b66e9b50-a28e-469b-b1a0-af0e45486874}" Name="Keywords" />
<RemoveFieldRef ID="{a5d2f824-bc53-422e-87fd-765939d863a5}" Name="ImageCreateDate" />
<FieldRef ID="{c29e077d-f466-4d8e-8bbe-72b66c5f205c}" Name="URL" DisplayName="URL" Required="FALSE" />
</FieldRefs>
</ContentType>
</Elements>
如果我根据自定义内容类型创建图片库,我添加的“URL”字段会显示在新/编辑表单中,但是我还会显示我尝试删除的两个字段,即 RemoveFieldRef被忽略。如果我查看“网站设置 - &gt;内容类型库”中的内容类型,这两个字段仍会列在那里。
在我的自定义内容类型(see MSDN definition)上设置继承=“FALSE”,从“网站设置 - 成功删除了这两个字段&gt;内容类型图库“页面,然后基本字段的无显示在新/编辑表单中 - 仅显示我自定义的”URL“字段。
除了我专门删除的两个字段外,我该如何确保基本“图片”内容类型的所有字段都显示在我的图片库的新/编辑表单中?
答案 0 :(得分:1)
我认为这个问题的本质是理解内容类型继承的工作原理。
来自MSDN(http://msdn.microsoft.com/en-us/library/aa544268.aspx)
如果Inherits为TRUE,则子内容类型将继承父级中的所有字段,&gt;包括用户添加的字段。
如果Inherits为FALSE或不存在且父内容类型是内置类型,则当&gt;安装SharePoint Foundation时,子&gt;内容类型仅继承父内容类型中的字段。子内容类型没有&gt;用户已添加到父内容类型的任何字段。
如果Inherits为FALSE或不存在且父内容类型由沙盒&gt;解决方案供应,则子项不会从父项继承任何字段。
我认为上面的关键短语是“如果Inherits为TRUE,则子内容类型会继承父级中的所有字段,包括用户添加的字段。”
这意味着为了完成您的设置,您将继承设置为false,并且您必须为您希望在内容类型中使用的所有字段包含FieldRef元素。
您没有引用/不包含有关如何将内容类型添加到列表实例的代码。确保已更新此内容以支持删除或将继承设置为false。
这些网站支持此处描述的内容。