访问/隐藏title-element

时间:2012-05-29 08:25:28

标签: c# sharepoint sharepoint-2010 field content-type

我创建了一个继承自item itemtype的内容类型。所以contenttype automaticaly有字段:Title。

但是如何访问这个字段(我想添加一些自定义验证并定义它是否以editform形式显示)?

我想进行服务器端验证并使用自定义edititemform。 Perhabs有可能删除/隐藏这个字段吗?

我尝试更改内容类型以隐藏标题:

 <Field
  ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
  Name="Title"
  StaticName="Title"
  DisplayName="Title"
  Type="Text"
  FromBaseType="TRUE"
  Required="FALSE"
  Hidden="TRUE"
  SourceID="http://schemas.microsoft.com/sharepoint/v3"
/>



  <!-- Parent ContentType: Element (0x01) -->
  <ContentType ID="0x0100b48c62c42879472aa8f1e1afc4dba7ce"
               Name="aa- aa"               
               Group="Custom Content Types"
               Description="My Content Type"
               Inherits="TRUE"
               Version="0">
      <FieldRefs>
        <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Hidden="TRUE" Required="FALSE" />

      </FieldRefs>

但仍然需要并显示标题字段。

2 个答案:

答案 0 :(得分:0)

您无法隐藏内置标题字段,因为它基本上是唯一标识符,您需要显示它。但是,您可以rename your title field实际上被认为是最佳做法,应该完成。

答案 1 :(得分:0)

我发现了问题:

如果我想隐藏以删除我的contenttype中的标题列,我必须禁用contenttypes吸入。但在消除了吸入后,定制柱将在部署后消失。因为它们不是基本类型的一部分。因此,字段也必须在列表模式中声明。

MSDN

  

当SharePoint Foundation创建列表实例时,它仅包含   那些在列表的基本类型模式中声明的列或   在列表架构中。如果您在列表中引用网站内容类型   架构,该内容类型引用不是的站点列   包含在列表的基本类型模式中或列表模式中,   这些列不包括在内。您必须在中声明这些列   列出SharePoint Foundation的架构,以将它们包含在列表中。

<强> CONTENTTYPE

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Field ID="{61CC6776-F855-48d5-A4EC-B7CE11CE2324}"
      DisplayName="ExpiresDate" Name="ExpiresDate"
      Type="DateTime" Required="False"
      UnlimitedLengthInDocumentLibrary="FALSE"/>


  <!-- Parent ContentType: Element (0x01) -->
  <ContentType ID="0x0100b48c62c42879472aa8f1e1afc4dba7ce"
               Name="GroupsList - ContentTypeGroups"               
               Group="Custom Content Types"
               Description="My Content Type"
               Inherits="false"
               Version="0">
      <FieldRefs>
        <RemoveFieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" />

      <FieldRef ID="{61CC6776-F855-48d5-A4EC-B7CE11CE2324}" Name="ExpiresDate" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE" />
      </FieldRefs>
  </ContentType>
</Elements>

列表架构

...

  <ContentTypes>

      <ContentTypeRef ID="0x0100b48c62c42879472aa8f1e1afc4dba7ce" />
    </ContentTypes>
    <Fields>
      <Field ID="{61CC6776-F855-48d5-A4EC-B7CE11CE2324}"
          DisplayName="ExpiresDate" Name="ExpiresDate"
          Type="DateTime" Required="False"
          UnlimitedLengthInDocumentLibrary="FALSE"/>

    </Fields>
...