ContentTypeRef无法按预期工作,继承自System而不是我的

时间:2011-05-19 08:14:08

标签: sharepoint-2010 content-type

我有一个包含两个功能的SP项目:

  • 定义某些字段,内容类型和列表定义的第一个功能
  • 定义第一个要素定义的列表实例的第二个功能

在第二个特性中,我使用ContentTypeRef元素绑定到第一个特征中定义的内容类型。我在许多博客文章和论坛帖子中看到,字段没有正确填充到列表中,但这不是我的问题(也许它是相关的?)

实例化列表定义了一种内容类型,但它不是继承自我的内容类型,而是继承“系统”内容类型。

这种行为是否正确?我怎样才能真正继承我的内容类型而不是系统内容类型?

事先提前

[编辑]我找到的最简单的解决方法是将内容类型定义复制到我的列表架构的contenttypes元素中......但它仍然是一个复制/粘贴操作(尽管可能很难看)

2 个答案:

答案 0 :(得分:0)

请确保您的内容类型ID有效,我从未设法绕过商品内容类型(0x01),这意味着您的内容类型的ID为0x0100{A-GUID}

无论如何,即使你正确地定义了你的内容类型,当你将它绑定到一个自定义列表时,这个内容类型正在按预期工作,你仍然需要在列表模式中重新声明它的所有字段引用和一次再次,复制你的领域的大部分定义(我的问题是ID少于这个区域的ID,名称,显示名称,类型)......

例如,我创建了最后一个列表:

    <ContentTypes>
        <ContentType ID="0x0100FDCCBFFB0FBF4D5C8E069F582412909602" Name="UniverseTranslation" Group="XYZ" Description="Universe Translation" Version="0">
            <FieldRefs>
                <FieldRef ID="{39BF387B-C20A-4D30-BD17-CB70E4609FA2}" Name="LookupUniverse" DisplayName="Universe" Required="TRUE" />
                <FieldRef ID="{824F7063-6D09-48CD-B5BA-FE9B5EE36D6A}" Name="WCC_Language" DisplayName="Language" Required="TRUE" />
                <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" DisplayName="Translation" Required="TRUE" />
                <FieldRef ID="{EC8E4DB7-B715-430B-9B4A-F222F025EFAB}" Name="RichDescription" DisplayName="Description"/>
            </FieldRefs>
        </ContentType>
    </ContentTypes>
    <Fields>

        <Field
            ID="{39bf387b-c20a-4d30-bd17-cb70e4609fa2}"
            Name="LookupUniverse"
            DisplayName="Universe"
            Type="Lookup"
            ShowField="Title"
            Required="TRUE"
            EnforceUniqueValues="FALSE"
            List="Lists/Universes">
        </Field>

        <Field
            ID="{824F7063-6D09-48CD-B5BA-FE9B5EE36D6A}"
            Name="WCC_Language"
            DisplayName="Language"
            Type="VariationLabelsFieldType"
            Required="TRUE">
        </Field>

        <Field
            ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
            Name="Title"
            DisplayName="Translation"
            Type="Text"
            Required="TRUE">
        </Field>

        <Field
            ID="{EC8E4DB7-B715-430B-9B4A-F222F025EFAB}"
            Name="RichDescription"
            DisplayName="Rich Description"
            Type="Note"
            NumLines="4"
            RichText="TRUE"
            RichTextMode="Compatible"
            AllowHyperlink="TRUE"
            IsolateStyles="FALSE"
            AppendOnly="FALSE"
            Required="FALSE">
        </Field>

    </Fields>

如果您可以发布内容类型定义和列表架构的一部分,我很确定我们能够提供更相关的帮助。

答案 1 :(得分:0)

  

通过添加内容类型资源文件夹的相对文件夹路径,它对我有用。它还可以用于向列表添加内容类型的多个引用,如下所示:

<ContentTypes>
    <ContentType ID="0x01006775E96C04A04F52AC1FCE50F0CB0901" Name="contentType1" Group="Test Content Types" Description="Test Content Type" Inherits="TRUE" Version="0">
        <Folder TargetName="contentType1" />
    </ContentType>
    <ContentType ID="0x0100958BB07B626A494F9201B03E96948F3D" Name="contentType2" Group="Test Content Types" Description="Test Content Type" Inherits="TRUE" Version="0">
        <Folder TargetName="contentType2" />
    </ContentType>
</ContentTypes>
相关问题