代码之家  ›  专栏  ›  技术社区  ›  Hugo Migneron

SharePoint内容类型:从父级删除列

  •  2
  • Hugo Migneron  · 技术社区  · 15 年前

    我正在尝试创建将从联系人内容类型(与SharePoint一起提供)继承的内容类型。 我需要在那里的大部分领域,但希望能够删除其中的一些。

    是否可以通过内容类型的XML定义删除不需要的字段?

    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <ContentType ID="0x01004B56BB872BFE984D9611B5D8CF52CB60" Name="Child Contact" Description="Inherits from Contact" Group="...">
        <FieldRefs>
        ??? What would I put there to remove fields that exist in the parent?
        </FieldRefs>
      </ContentType>
    </Elements>
    
    4 回复  |  直到 15 年前
        1
  •  3
  •   Toni Frankola    15 年前

    在内容类型定义中使用此语法:

    <FieldRefs>
          <RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name ="Title"  />
    </FieldRefs>
    

    您必须为要删除的每个文件找到正确的ID。

        2
  •  1
  •   Janis Veinbergs    15 年前

    只需通过设置hidden=“true”属性在子内容类型中隐藏它们。 见 here 获取完整的属性列表。

        3
  •  0
  •   jagprinderdeep    15 年前

    如果不需要这些字段,那么首先为什么要继承该内容类型?

        4
  •  0
  •   Colin    15 年前

    我建议您重新考虑您的内容类型继承结构。定义只包含两个子CT共享的列的父CT,并将其他列添加到各自的子CT。

    把它想象成OO编程,你不会把只在从类A继承到父类A的子类B中使用的方法放在那里,并且在这个过程中,使该方法在从A继承的所有类中都可用,而它们永远不会在那里使用,甚至更糟的是,被误用…