自定义内容类型(从“页面”继承)SharePoint中不存在的字段

时间:2010-04-08 13:23:18

标签: sharepoint types field

所以我想根据功能的“页面”部署自定义内容类型。内容类型的部署工作正常 - 自定义内容类型基于“页面”创建。

缺少的是FieldRefs:我在部署的内容类型中没有显示我在FieldRefs标记中引用的字段。

我的Elements.xml看起来像......

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field Type="Text"
DisplayName="PlantName"
Required="FALSE"
Group="Custom Columns"
ID="{2068B882-8349-4a7f-BA3A-60BE60DEFF9A}"
StaticName="PlantName"
Name="PlantName" />
<ContentType ID="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900A96BBF2C61EC4534A7654CEF00B72A9D"
Name="PlantDocument"
Group="Custom Content Types"
Description="PlantDocument"
Hidden="FALSE"
Version="0">
<FieldRefs>
<FieldRef ID="2068B882-8349-4a7f-BA3A-60BE60DEFF9A"
Name="PlantName" />
</FieldRefs>
</ContentType>
</Elements>

有谁可以告诉我为什么“PlantName”不在我的内容类型中?

感谢所有帮助!

2 个答案:

答案 0 :(得分:5)

我遇到了类似的问题,经过一些实验,我发现XML中的注释会造成严重破坏。

这很好用

 <FieldRefs>
      <FieldRef ID="{4B9D42FA-8081-49AB-9F89-72FAB3C6609C}"/>
 </FieldRefs>

这不起作用

<FieldRefs>
      <!-- My field comment -->
      <FieldRef ID="{4B9D42FA-8081-49AB-9F89-72FAB3C6609C}"/>
</FieldRefs>

我不会对此发表评论,因为我可能会感到不安并停止工作。

答案 1 :(得分:0)

我不确定我是否完全理解了你的问题,但这听起来与我以前见过的相似。

我将假设您已经检查了所有明显的内容,例如您的架构定义,并且在部署架构后,您正在停用并激活内容类型功能。

向网站添加内容类型后,可能的情况是您根据网站中的某个内容类型创建网页/列表项的实例。在我的情况下,它是两个子网站。这对我来说很好。一旦我更新了我的内容类型(通过添加新字段),虽然我可以看到内容类型库中的内容类型更改,但我看不到更改进入我创建基于页面的子站点在我的内容类型上。这是因为,当您基于特定内容类型创建项目实例时,子站点会在其当前条件下创建该内容类型的缓存副本。

稍后当您更改内容类型时,子网站中的缓存副本不会更新。这不是世界上最明显的事情。

可能您看不到子网站中显示的字段,但它们确实存在于您的网站列中,并且您的根内容类型已正确更新。

如果这是您的问题,那么您需要执行,我们称之为'内容类型下推'。要做到这一点,你可以下载Gary Lapointe的stsadm命令,你必须通过命令提示符运行(我听说这在某些情况下有风险)。您也可以手动执行此操作,但很抱歉,我不记得具体如何完成。您必须根据内容类型删除所有实例,然后重试。相当痛苦的小任务。