更改ContentType中Title列的显示名称,不管是否明智?

时间:2010-07-07 14:38:03

标签: sharepoint

我曾经读过,在SharePoint中创建新的ContentType时,更改Title列的显示名称是不明智的。然而,它是可能的(即列静态名称仍然是“标题”,但显示名称是“描述”)。

所以我的问题是,有哪些可能的并发症?当我创建一个需要“描述”列但没有“标题”列的新ContentType时,为什么不更改呢?

4 个答案:

答案 0 :(得分:18)

我同意您需要使用CAML XML执行此操作。我只是想发布如何做的实际细节,以便下一个有这个问题的人不必像我那样继续搜索。感谢Lambros's Blog获得答案。

您实际上需要更新三个字段 - 标题字段和基于它的两个计算字段,您需要使用预定义的SharePoint ID值。见下文或上面的链接:

您需要添加以下内容添加到FieldRef:

<FieldRef Name="LinkTitle" ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" DisplayName="Renamed" Sealed="TRUE"/>
<FieldRef Name="LinkTitleNoMenu" ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" DisplayName="Renamed" Sealed="TRUE"/>
<FieldRef Name="Title" ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Renamed" Sealed="TRUE"/>

您需要添加以下内容添加到字段:

<Field Name="LinkTitle" ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" DisplayName="Renamed" Sealed="TRUE" Type="Calculated"/>
<Field Name="LinkTitleNoMenu" ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" DisplayName="Renamed" Sealed="TRUE" Type="Calculated"/>
<Field Name="Title" ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Renamed" Sealed="TRUE" Type="Text"/>

应该这样做。再次感谢Lambros。

答案 1 :(得分:8)

如果您在解决方案的功能中将自己的内容类型开发为xml文件,则更改标题列的显示名称没有问题。

问题在于用户尝试通过用户界面进行操作。

  1. 他们转到网站设置/内容类型
  2. 打开内容类型,然后点击标题栏
  3. 将名称更改为更好的内容
  4. 在这种情况下,他们正在改变的是标题站点列的显示名称。一旦他们发现它改变了所有列表中的标题列,他们就会尝试将其更改回来,但这可以通过聪明的SharePoint UI来阻止,因为标题是保留名称。

答案 2 :(得分:5)

我对你的“可能出现的并发症有什么问题”有第一手的经验,所以让我给你一个我刚刚遇到的一个具体的例子,这会让我今天早上痛苦不堪。

您无意中更改了网站列名称(认为您只影响特定列表),但后来意识到您已更改父项目网站列,并检查了应用于所有继承内容类型的漂亮框。 (我觉得自己就是为了鞭打自己...呃)。

所以你的所有名单都受到了影响。但等等,这里有更多的痛苦。内部SharePoint人员列表(称为“用户信息列表”)也会受到影响,您无法将其更改回原始的“名称”列标题。当您尝试通过Microsoft Access连接到SharePoint列表时,这将真正发挥作用,这是一种硬编码,用于查找专门查找名为“名称”列的用户信息列表。因此,它打破了这些链接列表,使其无法通过MS Access。

我现在正在研究一种通过其他方法重新命名的方法,因为UI会阻止您将列命名为“Name”。

所以,回答你的问题:不要这样做!

答案 3 :(得分:2)

我不知道有任何问题。我已经多次这样做了,并没有遇到任何问题。