我正在使用XML创建一个功能,用于字段,内容类型和列表的定义。通过编辑设计器中的视图或使用代码或PowerShell对任何内容进行更改,我对如何做我想要的事情并不特别感兴趣。
我创建了几个具有默认“标题”列的内容类型,但在内容类型定义中,我指定了DisplayName为“Name”。很好,这很容易!
因此,我使用Visual Studio 2010项目模板基于该内容类型创建列表定义(和列表实例),并在部署时,在任何地方显示“标题”...在视图中,“标题”是列名称。当我进入新的,编辑或显示表单时,“标题”是字段标签。哦不......
所以在一天中的大部分时间里玩这个,我发现如果我在列表定义中的MetaData元素的Fields元素中指定了DisplayName为“Name”的“Title”字段,那么它会在它正在绘制新的,编辑和显示的表单,但是当显示列表时,它仍然显示列名称“标题”。
在ViewFields元素中,LinkTitle是被引用的字段,我将DisplayName属性设置为Name,并忽略它。我也没有成功尝试过Alias属性,除了“可选文本”(很棒的工作人员)之外,它似乎没有任何MSDN文档。
关于神奇的XML的任何想法,以获得列表视图中的标题列,并以标题“名称”显示。
答案 0 :(得分:2)
我终于发现,如果我在列表定义中的MetaData元素的Fields元素中明确包含LinkTitle,并将Field的DisplayName属性设置为“Name”,那就是我要做的事情。
<Field Name="LinkTitle"
ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}"
DisplayName="Name"/>
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Parent ContentType: Item (0x01) -->
<Field ID="{87F3ABFD-2F63-4E10-802E-9BE7E1740137}"
Name="Description"
DisplayName="Description"
Group="My Custom Columns"
Type="Note"
DisplaceOnUpgrade="TRUE" />
<ContentType ID="0x0100dcbde47be1774e64a169b55bc1c956b4"
Name="AddUserToGroup - ContentType1"
Group="Custom Content Types"
Description="My Content Type"
Inherits="FALSE"
Overwrite="TRUE"
Version="0">
<FieldRefs>
<FieldRef ID="{13CF49E1-1961-4794-8FDD-B045F97D102F}" Name="Title"
DisplayName="Name" Required="TRUE" Sealed="TRUE" ShowInDisplayForm="TRUE"
ShowInEditForm="TRUE" ShowInNewForm="TRUE" />
<FieldRef ID="{87F3ABFD-2F63-4E10-802E-9BE7E1740137}"
Name="Description" DisplayName="Description"/>
</FieldRefs>