2

我正在使用 XML 为字段、内容类型和列表的定义创建一个功能。我对如何通过在设计器中编辑视图或使用代码或 PowerShell 更改任何内容来做我想做的事情并不特别感兴趣。

我创建了几个具有默认“标题”列的内容类型,但在内容类型定义中,我指定了“名称”的 DisplayName。太好了,这很容易!

因此,我使用 Visual Studio 2010 项目模板基于该内容类型创建了一个列表定义(和列表实例),并且在部署时,它到处都显示“标题”......在视图中,“标题”是列名。当我进入新的、编辑或显示表单时,“标题”是字段标签。不好了...

因此,在一天的大部分时间里都在玩这个,我发现如果我在列表定义的 MetaData 元素的 Fields 元素中指定 DisplayName 为“Name”的“Title”字段,那么它在绘制时会监听用于新建、编辑和显示的表单,但在显示列表时,仍然显示“标题”的列名。

在 ViewFields 元素中,LinkTitle 是被引用的字段,我已将 DisplayName 属性设置为 Name 并且它被忽略了。我也没有成功地尝试过 Alias 属性,它似乎没有任何 MSDN 文档,除了“可选文本”(很棒的工作人员)。

关于神奇的 XML 的任何想法,以获取列表视图中的标题列,以显示标题为“名称”。

4

2 回答 2

2

我终于发现,如果我在列表定义中的 MetaData 元素的 Fields 元素中显式包含 LinkTitle 并将 Field 的 DisplayName 属性设置为“Name”,那么这就是我想要做的。

<Field Name="LinkTitle"
       ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}"
       DisplayName="Name"/>
于 2012-08-02T14:54:08.427 回答
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>

于 2013-02-28T15:22:53.527 回答