我曾经读过,在SharePoint中创建新的ContentType时,更改Title列的显示名称是不明智的.然而,它是可能的(即列静态名称仍然是"标题"但显示名称是"描述").
所以我的问题是,有哪些可能的并发症?当我创建一个需要"描述"列但没有"标题"列的新ContentType时,为什么不更改它?
小智 18
我同意您需要使用CAML XML执行此操作.我只是想发布如何做的实际细节,以便下一个有这个问题的人不必像我那样继续搜索.感谢Lambros的博客提供答案.
实际上,您需要更新三个字段 - 标题字段和基于它的两个计算字段,您需要使用预定义的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"/>
Run Code Online (Sandbox Code Playgroud)
您需要通过添加以下内容添加到字段:
<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"/>
Run Code Online (Sandbox Code Playgroud)
应该这样做.再次感谢Lambros.
如果您在解决方案的功能中将自己的内容类型开发为xml文件,则更改标题列的显示名称没有问题.
问题是当用户尝试通过UI进行操作时.
在这种情况下,他们正在改变的是标题站点列的显示名称.一旦他们发现它改变了所有列表中的标题列,他们就会尝试将其更改回来,但这可以通过聪明的SharePoint UI来阻止,因为标题是保留名称.
我对你的"可能出现的并发症有什么问题"有第一手的经验,所以让我给你一个特定的例子,我刚遇到这个例子,这让我今天早上痛苦不堪.
您无意中更改了站点列名称(认为您只影响特定列表),但后来意识到您已更改父项目站点列,并检查了应用于所有继承内容类型的漂亮框.(我觉得自己就是为了鞭打自己...呃).
所以你的所有名单都受到了影响.但等等,这里有更多的痛苦.内部SharePoint人员列表(称为"用户信息列表")也会受到影响,您无法将其更改回原始的"名称"列标题.当您尝试通过Microsoft Access连接到SharePoint列表时,这将真正发挥作用,这是一种硬编码,用于查找专门查找名为"名称"列的用户信息列表.因此,它打破了这些链接列表,使它们无法通过MS Access.
我正在研究一种通过其他方法重命名它的方法,因为UI会阻止您将列命名为"Name".
那么,回答你的问题:不要这样做!
| 归档时间: |
|
| 查看次数: |
35376 次 |
| 最近记录: |