ProjectedFields 元素 (视图)

适用于: SharePoint 2016 |SharePoint Foundation 2013 |SharePoint Online |SharePoint Server 2013

指定在查询中联接了一个或多个其他列表时可以在视图中包含的联接列表中的字段。

<ProjectedFields>
  <Field ... />
  <Field ... />
</ProjectedFields>

元素和属性

下面各部分介绍了属性、子元素和父元素。

Attributes

子元素

注意

Field 子元素的最大数目。 它定义为列表中允许的最大字段数与列表中已存在的字段数之间的差异。

父元素

View

出现次数

  • 最小值:0
  • 最大值:1

注意

View 元素不能包含 ProjectedFields 元素,除非它具有一个 Joins 元素,并且该元素至少具有一个 Join 子元素。 但是,构成 SPQuery.ProjectedFields 属性的值的 ProjectedFields 元素(因此不是 View 元素的子元素)可用于支持不使用 Joins 元素的隐式联接。

我们不建议使用不包含 Joins 元素的联接。 你将始终使用显式 Join 元素,最大程度地提高解决方案与 Microsoft SharePoint Foundation 的未来版本兼容的机会。 有关使用 ProjectedFields 元素的隐式联接的详细信息,请参阅List Joins and Projections

备注

如果联接列表的字段未在 ProjectedFields 中表现,则它不能包含在 ViewFields 元素中。

示例

下面的示例说明如何将其他字段添加到由查询返回的结果中。 List 属性的值是外部列表的别名。 别名在 Join Element (View) 中定义。 ShowField 属性必须设置为外部字段的内部名称。

Type 属性不指示字段的数据类型,这与它在 Field 元素中通常的行为不同。 当 Field 元素是 ProjectedFields 元素的子元素时,Type 只指示 Join 元素(在 ProjectedFields 元素依赖的 Joins 元素中)是否基于现有的列表间查找关系。 从 SharePoint Foundation 2010 开始,所有联接都必须基于现有的查找关系,因此 Type 始终具有值“Lookup”。 当字段是 ProjectedFields 元素的子元素时,将不会指示字段的实际数据类型。 但是,字段的数据类型很重要,因为 ProjectedFields 元素中只能包括以下类型的字段:

  • Calculated(视为纯文本)
  • ContentTypeId
  • 计数器
  • 货币
  • 日期时间
  • Guid
  • 整数
  • Note(只有一行)
  • 数字
  • Text

<ProjectedFields>
  <Field
    Name='CustomerCity'
    Type='Lookup'
    List='customerCities'
    ShowField='Title' />
</ProjectedFields>

有关 ProjectedFields 元素(其子 Field 元素具有 FieldRef 属性而不是 List 属性)的示例,请参阅List Joins and Projections